搬运工,撰写network_mode:“主机”似乎并没有工作
问题描述:
我尝试建立一个码头工人,compose.yml文件容器:搬运工,撰写network_mode:“主机”似乎并没有工作
version: '2'
services:
geonode:
build:
context: .
hostname: geonode
container_name: geonode
ports:
- 8000:8000
volumes:
- .:/geonode/
entrypoint:
- /usr/bin/python
command: manage.py runserver 0.0.0.0:8000
network_mode: host
在我Dockerfile我跑apt-get update
FROM ubuntu:14.04
后,但它失败: Could not resolve 'archive.ubuntu.com'
我试过docker run -i -t --net=host ubuntu:14.04 /bin/bash
,然后运行apt-get update
它工作。 因此,在我看来,docker-compose中的network_mode和docker run中的--net=host
工作方式不同。
有人有解释吗?
答
我不知道为什么它会有所作为,但尝试使用引号,如文档中所示:
network_mode: "host"
如果不识别该属性,它会回落到默认,通常是“桥”。您也可以通过docker inspect <container name>
来验证网络类型。
答
定义网络不是docker build
命令的选项,仅在运行容器时使用,docker-compose
只是docker引擎顶端的前端。因此,如果您无法通过主机上的桥接网络连接到互联网,我怀疑您无法在此建立图像。
因此,首先让桥接网络工作,然后尝试构建您的图像。如果你绝对不能让桥接网络工作,你可以通过在容器中手动运行你的命令来创建容器,然后将该容器提交给一个图像,但我不会推荐这个,因为它不是很好的重现性或者维护。