使用Docker在本地啟動3個MySQL鏡像


首先執行 sudo docker pull mysql 命令下載mysql官方鏡像:

zifeiy@zifeiy-PC:~$ sudo docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
5e6ec7f28fb7: Pull complete 
4140e62498e1: Pull complete 
e7bc612618a0: Pull complete 
1af808cf1124: Pull complete 
ff72a74ebb66: Pull complete 
3a28cb03e3dc: Pull complete 
2b52dda3bd7d: Pull complete 
dc89e81122ad: Pull complete 
ecba98b7a588: Pull complete 
109b011a27be: Pull complete 
5f380f98ab52: Pull complete 
cdda841f5c5c: Pull complete 
Digest: sha256:048c2c616866c47c8a9fb604548d32ce842be292b56fba3d90fc07e0e143dac4
Status: Downloaded newer image for mysql:latest

然后使用 netstat -anp | grep 3306 命令是否被占用了,結果如下:

zifeiy@zifeiy-PC:~$ sudo netstat -anp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      1044/mysqld         
tcp6       0      0 :::33060                :::*                    LISTEN      1044/mysqld     

可以看到,3306端口已經被mysqld這個進程占用了,原因是我之前已經在我的電腦上啟動了mysqld服務。

所以我們接下來啟動的3台mysql的Docker鏡像,在確定沒有端口占用的情況下,我們將他們的3306端口分別映射到宿主機的3307、3308、3309端口。
使用如下命令創建3個mysql的docker容器:

sudo docker run --name mysql-node3307 -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -d mysql
sudo docker run --name mysql-node3308 -e MYSQL_ROOT_PASSWORD=123456 -p 3308:3306 -d mysql
sudo docker run --name mysql-node3309 -e MYSQL_ROOT_PASSWORD=123456 -p 3309:3306 -d mysql

使用 sudo docker ps 命令可以查看當前活躍的docker容器:

zifeiy@zifeiy-PC:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
934bd2e04221        mysql               "docker-entrypoint.s…"   9 seconds ago       Up 7 seconds        33060/tcp, 0.0.0.0:3309->3306/tcp   mysql-node3309
0134cdc3c255        mysql               "docker-entrypoint.s…"   18 seconds ago      Up 16 seconds       33060/tcp, 0.0.0.0:3308->3306/tcp   mysql-node3308
725fc710270e        mysql               "docker-entrypoint.s…"   29 seconds ago      Up 28 seconds       33060/tcp, 0.0.0.0:3307->3306/tcp   mysql-node3307

可以看到,三台mysql容器已經啟動起來了。

然后我們通過本地的mysql命令連接着三台mysql服務器:

mysql -uroot -p123456 -h127.0.0.1 -P3307
mysql -uroot -p123456 -h127.0.0.1 -P3308
mysql -uroot -p123456 -h127.0.0.1 -P3309

我們使用上面命令的一個連接到其中一台服務器,然后在mysql命令行執行 show variables like 'version' 查看mysql的版本:

mysql> show variables like 'version';
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| version       | 8.0.14 |
+---------------+--------+
1 row in set (0.00 sec)

可以看到,是最新版的8.0.14,如果需要其他版本,可以在 docker pull 的時候指定mysql大版本。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM