![](/img/trans.png)
[英]Reach available Docker Swarm hosts in a LAN when another host is down
[英]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.