我需要构建一个多数据库MySQL容器,这很简单,因为我遵循了本教程:https://dzone.com/articles/multiple-mysql-databases-with-one-mysql-container
现在,我必须运行我的wordpress容器并将其连接到这些数据库之一,我尝试了一些我已经知道的事情:
docker run -e WORDPRESS_DB_PASSWORD=pass --network wordpress --name wordpress --link mysqldb:mysql -p 4123:80 -v "$PWD/html":/var/www/html -d wordpress
其中mysqldb是容器的名称,但是没有运气。
将wordpress容器与这些数据库之一链接的正确语法是什么?它们是两个,另一个应该用于其他目的。
我没有使用两个MySQL容器的自由,非常感谢任何建议。
答案 0 :(得分:0)
链接mysqldb:mysql
时的名称是数据库服务器主机名。在您的示例中,它是mysql
您可以使用/etc/hosts
来确认应用程序容器wordpress
中的mysql主机名
第二,您不必构建单独的多数据库容器,只需链接几次即可。
# create first mysql database container.
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql
4914c6fbb3e870b530fc5713908cd918ad3d1c43ebbeb460b878857328934f95
# create second mysql database container.
$ docker run --name some-mysql2 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql
72090be34a5d62ea53edd87e4b513ad5c0c413fe8b223fe36c2aae6938fd77c4
# run your application with links
$ docker run -d --name wordpress --link some-mysql:mysql1 --link some-mysql2:mysql2 wordpress
f1d6fbc2fcf30862efd0a4a4882425e359a2442c1476c0256c338e80a46ae66d
您可以在wordpress容器中检查主机名
$ docker exec -ti f1 bash
root@f1d6fbc2fcf3:/var/www/html# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 mysql1 4914c6fbb3e8 some-mysql # <= here is the first mysql hostname
172.17.0.3 mysql2 72090be34a5d some-mysql2 # <= here is the second mysql hostname
172.17.0.4 f1d6fbc2fcf3
root@f1d6fbc2fcf3:/var/www/html#