在Docker中安裝并運(yùn)行三個(gè)MySQL數(shù)據(jù)庫(kù)的操作指南
在 Docker 中安裝并運(yùn)行三個(gè) MySQL 數(shù)據(jù)庫(kù)
1. 確保 Docker 已安裝和運(yùn)行
確保 Docker 服務(wù)已在你的系統(tǒng)中正確安裝和運(yùn)行,可以通過(guò)以下命令檢查:
docker --version docker info
2. 拉取 MySQL 鏡像
從 Docker Hub 拉取最新版 MySQL 鏡像:
docker pull mysql:latest
3. 創(chuàng)建 MySQL 數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)(可選)
為了便于管理多個(gè)容器,可以創(chuàng)建一個(gè)自定義網(wǎng)絡(luò):
docker network create mysql-network
4. 創(chuàng)建并運(yùn)行第一個(gè) MySQL 容器
運(yùn)行以下命令啟動(dòng)第一個(gè) MySQL 容器:
docker run -d \ --name mysql-db1 \ --network mysql-network \ -e MYSQL_ROOT_PASSWORD=rootpassword1 \ -e MYSQL_DATABASE=db1 \ -e MYSQL_USER=user1 \ -e MYSQL_PASSWORD=password1 \ -p 3306:3306 \ mysql:latest
參數(shù)說(shuō)明:
--name mysql-db1:容器名稱。--network mysql-network:使用之前創(chuàng)建的網(wǎng)絡(luò)。-e MYSQL_ROOT_PASSWORD=rootpassword1:設(shè)置 root 用戶密碼。-e MYSQL_DATABASE=db1:初始化的數(shù)據(jù)庫(kù)名稱。-e MYSQL_USER=user1和-e MYSQL_PASSWORD=password1:設(shè)置普通用戶及其密碼。-p 3306:3306:將本機(jī)的 3306 端口映射到容器的 3306 端口。
5. 創(chuàng)建并運(yùn)行第二個(gè) MySQL 容器
啟動(dòng)第二個(gè) MySQL 容器,需確保端口不沖突:
docker run -d \ --name mysql-db2 \ --network mysql-network \ -e MYSQL_ROOT_PASSWORD=rootpassword2 \ -e MYSQL_DATABASE=db2 \ -e MYSQL_USER=user2 \ -e MYSQL_PASSWORD=password2 \ -p 3307:3306 \ mysql:latest
6. 創(chuàng)建并運(yùn)行第三個(gè) MySQL 容器
啟動(dòng)第三個(gè) MySQL 容器,繼續(xù)設(shè)置不同的端口:
docker run -d \ --name mysql-db3 \ --network mysql-network \ -e MYSQL_ROOT_PASSWORD=rootpassword3 \ -e MYSQL_DATABASE=db3 \ -e MYSQL_USER=user3 \ -e MYSQL_PASSWORD=password3 \ -p 3308:3306 \ mysql:latest
7. 驗(yàn)證容器運(yùn)行狀態(tài)
使用以下命令查看運(yùn)行中的容器:
docker ps
你將看到類似如下輸出:
CONTAINER ID IMAGE COMMAND STATUS PORTS NAMES abcd1234 mysql:latest "docker-entrypoint.s…" Up 10 seconds 0.0.0.0:3306->3306/tcp mysql-db1 efgh5678 mysql:latest "docker-entrypoint.s…" Up 10 seconds 0.0.0.0:3307->3306/tcp mysql-db2 ijkl9101 mysql:latest "docker-entrypoint.s…" Up 10 seconds 0.0.0.0:3308->3306/tcp mysql-db3
8. 連接到 MySQL 數(shù)據(jù)庫(kù)
使用 mysql 客戶端或其他工具連接到 MySQL 數(shù)據(jù)庫(kù)。示例如下:
連接到第一個(gè)數(shù)據(jù)庫(kù):
mysql -h 127.0.0.1 -P 3306 -u user1 -p
連接到第二個(gè)數(shù)據(jù)庫(kù):
mysql -h 127.0.0.1 -P 3307 -u user2 -p
連接到第三個(gè)數(shù)據(jù)庫(kù):
mysql -h 127.0.0.1 -P 3308 -u user3 -p
優(yōu)化和注意事項(xiàng):
持久化數(shù)據(jù):
如果需要數(shù)據(jù)持久化,可以為每個(gè)容器掛載宿主機(jī)目錄:
-v /path/to/db1:/var/lib/mysql
資源限制:
可以通過(guò) --memory 和 --cpus 參數(shù)限制容器資源使用。
備份與恢復(fù):
定期使用 docker exec 結(jié)合 mysqldump 進(jìn)行備份。
到此這篇關(guān)于在Docker中安裝并運(yùn)行三個(gè)MySQL數(shù)據(jù)庫(kù)的操作指南的文章就介紹到這了,更多相關(guān)Docker安裝并運(yùn)行三個(gè)MySQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker 容器生命周期 架構(gòu) 以及和VM之間的差異詳解
這篇文章主要介紹了Docker 容器生命周期 架構(gòu) 以及和VM之間的差異詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
Docker容器實(shí)戰(zhàn)之鏡像倉(cāng)庫(kù)
這篇文章主要介紹了Docker容器實(shí)戰(zhàn)之鏡像倉(cāng)庫(kù),文章通過(guò)Docker?Hub為例,講解關(guān)于鏡像倉(cāng)庫(kù)的使用,需要的小伙伴可以參考一下2022-05-05
docker鏡像拉取過(guò)程和遠(yuǎn)程代理配置過(guò)程
Docker鏡像拉取過(guò)程涉及客戶端、守護(hù)進(jìn)程、注冊(cè)表和網(wǎng)絡(luò)通信,客戶端發(fā)送請(qǐng)求,守護(hù)進(jìn)程處理并從注冊(cè)表下載鏡像層,配置包括Docker守護(hù)進(jìn)程的代理、TLS設(shè)置和防火墻規(guī)則,確保網(wǎng)絡(luò)策略和安全措施到位,以優(yōu)化鏡像拉取和保護(hù)傳輸過(guò)程2024-11-11
docker啟動(dòng)mysql并映射數(shù)據(jù)目錄(含備份腳本)
本文主要介紹了docker啟動(dòng)mysql并映射數(shù)據(jù)目錄(含備份腳本),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01
docker network如何創(chuàng)建橋接網(wǎng)絡(luò)
這篇文章主要介紹了docker network如何創(chuàng)建橋接網(wǎng)絡(luò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04

