对于Docker,如何同时访问LAN主机和其他容器?

问题描述 投票:1回答:1

我正在制作一个新项目,其中包含一个NodeJS服务和一个带有Docker-Compose的MySQL服务器。万一新的MySQL服务器上不存在NodeJS服务,就需要从旧的MSSQL服务器中查找数据。 MSSQL服务器位于192.168.0.x。我可以知道如何使Docker内部网络以及“主机”网络正常工作吗?

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:

谢谢。

docker docker-compose
1个回答
2
投票

您应该在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"

然后您可以使用名称mssqlhost从dockerized应用程序中引用MSSQL服务器>

© www.soinside.com 2019 - 2024. All rights reserved.