Для Docker, как получить доступ к узлам локальной сети, а также к другим контейнерам одновременно? - PullRequest
1 голос
/ 17 января 2020

Я делаю новый проект, который содержит сервис NodeJS и сервер MySQL с Docker -Compose. Служба NodeJS должна найти данные со старого сервера MS SQL на тот случай, если на новом сервере MySQL данные не существуют. Сервер MS SQL находится где-то 192.168.0.x. Могу ли я узнать, как заставить работать и внутреннюю сеть Docker, и сеть "host"?

version: '3.7'
services:
  mysql:
    image: mysql:5.7
    restart: always
    ports:
      - "3306:3306"
    volumes:
      - type: volume
        source: pos-db
        target: /var/lib/mysql
    command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
  server:
    build:
      dockerfile: dockerfile.dev
      context: ./
    depends_on:
      - mysql
    command: ['./docker/wait-for-it.sh', 'mysql:3306', '--', 'yarn', 'watch']
    ports:
      - "3000:3000"
volumes:
  pos-db:

Спасибо.

1 Ответ

4 голосов
/ 17 января 2020

Вы должны добавить extra_hosts раздел к вашей server услуге. Проверьте официальную документацию по адресу: https://docs.docker.com/compose/compose-file/#extra_hosts

Пример:

  server:
    build:
      dockerfile: dockerfile.dev
      context: ./
    depends_on:
      - mysql
    command: ['./docker/wait-for-it.sh', 'mysql:3306', '--', 'yarn', 'watch']
    ports:
      - "3000:3000"
    extra_hosts:
      - "mssqlhost:192.168.0.x"

Затем вы можете сослаться на ваш сервер MS SQL из приложения, подключенного к док-станции, используя имя mssqlhost

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