操作系统:CentOS 8
Docker 容器:drupal:latest & mariadb:latest
近两个星期以来,我一直在尝试通过将 Drupal 容器连接到 MariaDB 容器来学习 Docker 容器化,但不知道出了什么问题。
我刚跑:
systemctl stop firewalld
它终于奏效了!是的,我知道这是一件坏事,这就是我来这里的原因。我发现的教程都没有提到为 docker 打开防火墙端口。
我确实找到了一些在线教程,专门用于打开 docker 服务,但没有一个有效。他们中的大多数人告诉我运行:
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 的工作原理。所以我可能正在努力做到这一点(我还不知道),但我只想在学习新事物之前弄清楚这一点。
谢谢。