将Wordpress容器连接到多数据库容器

时间:2020-05-02 04:55:40

标签: mysql wordpress docker

我需要构建一个多数据库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容器的自由,非常感谢任何建议。

1 个答案:

答案 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#