атрибут имени хоста в docker-compose - PullRequest
1 голос
/ 19 октября 2019

В приведенном ниже файле docker-compose

dbc:
  image: mysql:5.6
  hostname: db
  expose:
    - "3386"
  environment:
    MYSQL_DATABASE: somebackenddb
    MYSQL_USER: user1
    MYSQL_PASSWORD: pswd
    MYSQL_ROOT_PASSWORD: pswd

agent:
  image: somedockerhub/ansible
  volumes:
    - ../../whatever/x.yml:/whatever/y.yml
  links:
    - dbc
  environment:
    PROBE_HOST: "db"
    PROBE_PORT: "3306"

мы используем атрибут hostname в сервисе dbc.

agent сервис связан с этимhostname со значением db

Как правило, имена хостов присваиваются виртуальным машинам.


Каждому контейнеру присваивается IP-адрес, но

Дляконтейнер, запущенный сервисом dbc, что означает hostname для контейнера?

1 Ответ

1 голос
/ 19 октября 2019

По умолчанию имена хостов контейнера Docker соответствуют их идентификатору контейнера.

Определение атрибута hostname: db в файле docker-compose установит имя хоста dbc сервисного контейнера какdb.

Если вы войдете в созданный контейнер с помощью docker exec -it [container_id] bash

и выполните команду hostname, вы должны увидеть db.

Запуск hostname -i будет показывать виртуальный IP-адрес.

cat /etc/hosts будет показывать: ... 172.17.0.4 db

Env. переменная HOSTNAME в инсайдерском контейнере будет равна db

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...