Drupal 容器未连接到 MariaDB 容器
Drupal Container not connecting to MariaDB container
OS: 分OS 8
Docker 容器:drupal:latest & mariadb:latest
近两周来,我一直在尝试通过将 Drupal 容器连接到 MariaDB 容器来学习 Docker 容器化,但无法弄清楚哪里出了问题。
我只是 运行:
systemctl stop firewalld
终于成功了!是的,我知道这是一件坏事,这就是我来这里的原因。 None 我发现的教程中提到了为 docker 打开防火墙端口的任何内容。
我确实找到了一些在线教程,专门用于打开 docker 服务,但其中 none 有效。他们中的大多数告诉我 运行:
firewall-cmd --permanent --zone=trusted --add-interface=docker0
,但这没有用。只有当我完全关闭防火墙时,安装才真正开始工作。
任何人都可以解释一下我需要什么来 运行 保持防火墙 运行 宁,但允许容器相互通信吗?如果您简要解释每个命令的作用,这也会有所帮助,因为防火墙规则对我来说仍然有点神秘。
这是我运行设置的内容:
docker network create -d bridge meow
docker run \
-e MYSQL_ROOT_PASSWORD=admin \
-e MYSQL_DATABASE=drupal \
-e MYSQL_USER=drupal \
-e MYSQL_PASSWORD=drupal \
--network meow \
--name mariadb \
-d mariadb:latest
docker run \
-p 80:80 \
--network meow \
--name drupal \
-d drupal:latest
systemctl stop firewalld
请注意,在添加 docker-compose 等新工具之前,我想了解 docker 的工作原理。所以我可能会尝试以困难的方式做到这一点(我还不知道),但我只想在学习新事物之前弄清楚这一点。
谢谢。
好的,出于某种原因,这奏效了。
firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=public --add-masquerade
firewall-cmd --reload
systemctl restart docker
更新:我发现了一些有助于解释其工作原理的更多信息:
The first command will add the Docker-interface to the trusted environment which allows Docker to make remote connections. The second command will allow docker to make local connections. This is particularly useful when multiple Docker containers are in as a development environment.
OS: 分OS 8
Docker 容器:drupal:latest & mariadb:latest
近两周来,我一直在尝试通过将 Drupal 容器连接到 MariaDB 容器来学习 Docker 容器化,但无法弄清楚哪里出了问题。
我只是 运行:
systemctl stop firewalld
终于成功了!是的,我知道这是一件坏事,这就是我来这里的原因。 None 我发现的教程中提到了为 docker 打开防火墙端口的任何内容。
我确实找到了一些在线教程,专门用于打开 docker 服务,但其中 none 有效。他们中的大多数告诉我 运行:
firewall-cmd --permanent --zone=trusted --add-interface=docker0
,但这没有用。只有当我完全关闭防火墙时,安装才真正开始工作。
任何人都可以解释一下我需要什么来 运行 保持防火墙 运行 宁,但允许容器相互通信吗?如果您简要解释每个命令的作用,这也会有所帮助,因为防火墙规则对我来说仍然有点神秘。
这是我运行设置的内容:
docker network create -d bridge meow
docker run \
-e MYSQL_ROOT_PASSWORD=admin \
-e MYSQL_DATABASE=drupal \
-e MYSQL_USER=drupal \
-e MYSQL_PASSWORD=drupal \
--network meow \
--name mariadb \
-d mariadb:latest
docker run \
-p 80:80 \
--network meow \
--name drupal \
-d drupal:latest
systemctl stop firewalld
请注意,在添加 docker-compose 等新工具之前,我想了解 docker 的工作原理。所以我可能会尝试以困难的方式做到这一点(我还不知道),但我只想在学习新事物之前弄清楚这一点。
谢谢。
好的,出于某种原因,这奏效了。
firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=public --add-masquerade
firewall-cmd --reload
systemctl restart docker
更新:我发现了一些有助于解释其工作原理的更多信息:
The first command will add the Docker-interface to the trusted environment which allows Docker to make remote connections. The second command will allow docker to make local connections. This is particularly useful when multiple Docker containers are in as a development environment.