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