gpt4 book ai didi

docker - 通过本地网络共享 Docker 容器并从另一台主机访问它

转载 作者:行者123 更新时间:2023-12-02 20:02:10 27 4
gpt4 key购买 nike

我尝试通过我的本地网络共享一个容器,以便从同一网络上的另一台机器访问这个容器。我已关注 tihs tutorial (“使用 macvlan 设备”部分)我成功地共享了一个简单的 Web 容器并从另一台主机访问。

但是我要分享的容器稍微复杂一点,因为他通过宿主机上的内网与宿主机上的其他容器通信。

我尝试绑定(bind)在我的 docker-compose 中创建的现有容器,但我无法访问它。你能帮我吗,或者如果是的话,请告诉我我错在哪里?

这是我的 docker-compose :

version: "2"
services:
baseimage:
container_name: baseimage
image: base
build:
context: ./
dockerfile: Dockerfile.base
web:
container_name: web
image: web
env_file:
- .env
context: ./
dockerfile: Dockerfile.web
extra_hosts:
- dev.api.exemple.com:127.0.0.1
- dev.admin.exemple.com:127.0.0.1
- dev.www.exemple.com:127.0.0.1
ports:
- 80:80
- 443:443
volumes:
- ./code:/ass
- /var/run/docker.sock:/var/run/docker.sock
tty: true
dns:
- 8.8.8.8
- 8.8.4.4
links:
- mysql
- redis
- elasticsearch
- baseimage
networks:
devbox:
ipv4_address: 172.20.0.2
cron:
container_name: cron
image: cron
build:
context: ./
dockerfile: Dockerfile.cron
volumes:
- ./code:/ass
tty: true
dns:
- 8.8.8.8
- 8.8.4.4
links:
- web:dev.api.exemple.com
- mysql
- redis
- elasticsearch
- baseimage
networks:
devbox:
ipv4_address: 172.20.0.3
mysql:
container_name: mysql
image: mysql:5.6
ports:
- 3306:3306
networks:
devbox:
ipv4_address: 172.20.0.4
redis:
container_name: redis
image: redis:3.2.4
ports:
- 6379:6379
networks:
devbox:
ipv4_address: 172.20.0.5
elasticsearch:
container_name: elastic
image: elasticsearch:2.3.4
environment:
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- ./es_data:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
devbox:
ipv4_address: 172.20.0.6
chromedriver:
container_name: chromedriver
image: robcherry/docker-chromedriver:latest
privileged: true
ports:
- 4444:4444
environment:
- CHROMEDRIVER_WHITELISTED_IPS='172.20.0.2'
- CHROMEDRIVER_URL_BASE='wd/hub'
- CHROMEDRIVER_EXTRA_ARGS='--ignore-certificate-errors'
networks:
devbox:
ipv4_address: 172.20.0.7
links:
- web:dev.www.exemple.com
networks:
devbox:
driver: bridge
driver_opts:
com.docker.network.enable_ipv6: "false"
ipam:
driver: default
config:
- subnet: 172.20.0.0/16
gateway: 172.20.0.1

最佳答案

创建 external网络分配external网络和devbox网络至web .然后可以通过 external 公开访问 Web。网络公共(public) IP 地址并使用 devbox 与内部服务通信网络。

将尽快发布工作示例

关于docker - 通过本地网络共享 Docker 容器并从另一台主机访问它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52705580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com