运行两个Mysql docker容器

时间:2016-03-08 20:51:05

标签: mysql docker

我正在尝试为master-> slave复制运行两个不同的mysql容器。我首先构建并运行master:

docker build --no-cache -t mysql-master .
docker run -it --name mysql-master -h mysql-master -p 3306:3309 mysql-master /bin/bash

哪个工作正常并正确运行容器。我可以获得设置第二个容器mysql-slave的信息。当我运行以下命令时:

docker build --no-cache -t mysql-slave .
docker run -it -p 3308:3309 mysql-slave --name mysql-slave --link mysql-master:mysql-slave /bin/bash

mysql-master容器断开连接。我不确定为什么,但我确信容器中存在某些我可能不知道的冲突。谁能建议我应该运行什么docker命令才能让两个容器同时运行?

我有一种感觉,这是因为两个容器都试图访问同一个端口:

root@test2net:~# docker ps -a
CONTAINER ID        IMAGE                 COMMAND                CREATED             STATUS              PORTS                               NAMES
d1942b5e1f69        mysql-slave:latest    "/tmp/makeSlaveSQL.s   40 seconds ago      Up 40 seconds       3306/tcp, 0.0.0.0:32773->3307/tcp   mysql-slave
c9a7632d9cae        mysql-master:latest   "/tmp/makeMasterSQL.   2 minutes ago       Up 2 minutes        0.0.0.0:32769->3306/tcp             mysql-master

是否有办法将每个容器显式转换为特定端口。我已尝试在Dockerfile中使用EXPOSE,并-p指定不同的端口,但正如您从上面所看到的,mysql-slave仍然绑定到端口3306。

0 个答案:

没有答案