簡體   English   中英

Docker for Windows - 如何到達同一局域網上的外部主機

[英]Docker for Windows - How to reach external host on the same LAN

Docker 為 Windows 新手在這里。

我需要其中一個容器來訪問 web 服務器,該服務器位於主機所在的同一 LAN ( 192.168.1.134 ) 的一台機器中 ( 192.168.1.100 ),但我不明白該怎么做。

容器通過 docker-compose 啟動,配置如下:

version: '3.2'

services:
  myapp:
    image: 'docker.io/bitnami/codeigniter:latest'
    ports:
      - '8000:8000'
    volumes:
      - '.:/app'
    depends_on:
      - mariadb
  mariadb:
    volumes:
      - ./docker_data:/docker-entrypoint-initdb.d
    image: 'docker.io/bitnami/mariadb:10.3-debian-10'
    ports:
      - '3306:3306'
    environment:
      MARIADB_ROOT_PASSWORD: xxx
      MARIADB_DATABASE: xxx
      MARIADB_USER: xxx
     MARIADB_PASSWORD: xxx
  composer_installation:
    container_name: composer_installation
    image: composer
    volumes:
      - ./:/app
    command: composer install --ignore-platform-reqs  

容器可以相互 ping 通,並且容器內有出站/入站 Internet 連接,但我無法訪問 LAN 中的 IP

我嘗試通過添加修改 docker-compose

--extra_hosts:
  - "myotherhost:192.68.1.134"

到“ myapp ”容器 - 我可以看到主機添加到/etc/hosts文件,但我沒有出站連接。

我還嘗試將network_mode: bridge添加到每個容器配置中,但是這樣我就失去了容器之間的通信。

只需使用network_mode作為host

version: '3.2'

services:
  myapp:
    image: 'docker.io/bitnami/codeigniter:latest'
    volumes:
      - '.:/app'
    network_mode: "host"
    depends_on:
      - mariadb
  mariadb:
    volumes:
      - ./docker_data:/docker-entrypoint-initdb.d
    network_mode: "host"
    image: 'docker.io/bitnami/mariadb:10.3-debian-10'
    environment:
      MARIADB_ROOT_PASSWORD: xxx
      MARIADB_DATABASE: xxx
      MARIADB_USER: xxx
     MARIADB_PASSWORD: xxx
  composer_installation:
    container_name: composer_installation
    image: composer
    network_mode: "host"
    volumes:
      - ./:/app
    command: composer install --ignore-platform-reqs  

在這里,我假設所有三個容器都需要連接到同一個 LAN,如果它用於特定服務,則僅將network_mode: "host"添加到這些服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM