Контейнер Drupal не подключается к контейнеру MariaDB - PullRequest
0 голосов
/ 20 июня 2020

ОС: CentOS 8

Docker Контейнеры: drupal: latest & mariadb: latest

Я пытался изучить Docker контейнеризацию, подключив контейнер Drupal к Контейнер MariaDB уже почти две недели, и не мог понять, в чем дело.

Я только что запустил: systemctl stop firewalld и, наконец, сработало! Да, я знаю, что это плохо, поэтому я здесь. Ни в одном из найденных мной руководств ничего не говорится об открытии портов брандмауэра для docker.

Я нашел несколько онлайн-руководств, специально для открытия служб docker, но ни одно из них не помогло. Большинство из них сказали мне запустить: firewall-cmd --permanent --zone=trusted --add-interface=docker0, но это не сработало. И только когда я полностью выключил брандмауэр, установка фактически начала работать.

Кто-нибудь, пожалуйста, объясните, что мне нужно запустить, чтобы брандмауэр работал, но позволяя контейнерам обмениваться данными друг с другом? Также было бы полезно, если бы вы дали краткое объяснение того, что делает каждая команда, поскольку правила брандмауэра для меня все еще являются своего рода crypti c.

Вот что я сделал, чтобы настроить это:

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, прежде чем добавлять новые инструменты, такие как docker -compose. Так что, возможно, я пытаюсь сделать это трудным путем (я еще не знаю), но я просто хотел бы понять это, прежде чем узнаю что-то новое.

Спасибо.

1 Ответ

0 голосов
/ 20 июня 2020

Хорошо, по какой-то причине это сработало.

firewall-cmd --permanent --zone=trusted --change-interface=docker0

firewall-cmd --permanent --zone=public --add-masquerade

firewall-cmd --reload

systemctl restart docker

ОБНОВЛЕНИЕ: я нашел дополнительную информацию, которая помогла объяснить, почему это сработало:

Docker и Fedora 32

Первая команда добавит Docker -интерфейс к доверенной среде, который позволяет Docker устанавливать удаленные подключения. Вторая команда позволит docker устанавливать локальные соединения. Это особенно полезно, когда в качестве среды разработки используется несколько контейнеров Docker.

...