Docker In Docker In Docker Compose(网络问题)
我真的无法向你们解释,想要创建一个运行docker的docker容器有多难,docker将运行我的web服务器,可以访问我的外部docker主机 到目前为止,我所知道的是:Docker In Docker In Docker Compose(网络问题),docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,我真的无法向你们解释,想要创建一个运行docker的docker容器有多难,docker将运行我的web服务器,可以访问我的外部docker主机 到目前为止,我所知道的是: 我有一个docker文件,当在docker外部执行时 用编写和测试我可以看到它连接到我的主机docker 守护进程 接下来我进入我的docker compose设置,我知道我必须 由于内部的网络连接而出现问题 docker编写文件。但我有0个docker 经验,所以我问如何将容器也连接到 是否在此设置中设置默认网络 我的
- 我有一个docker文件,当在docker外部执行时 用编写和测试我可以看到它连接到我的主机docker 守护进程李>
- 接下来我进入我的docker compose设置,我知道我必须 由于内部的网络连接而出现问题 docker编写文件。但我有0个docker 经验,所以我问如何将容器也连接到 是否在此设置中设置默认网络
#/垃圾箱/垃圾箱
set-e
#第一个参数是`-f`或`--some选项`
如果[“${1#-}”!=“$1”];然后
set--docker“$@”
fi
#如果我们的命令是有效的Docker子命令,那么让我们通过Docker调用它
#(这允许“docker运行docker ps”等)
如果docker帮助“$1”>/dev/null 2>&1;然后
set--docker“$@”
fi
#如果我们有“--链接某个docker:docker”而不是docker\u主机,那么让我们自动设置docker\u主机
如果[-z“$DOCKER_主机”-a“$DOCKER_端口\u 2375\u TCP”];然后
导出DOCKER\u主机tcp://docker:2375'
fi
如果[“$1”=“dockerd”];然后
cat>&2您的Dockerfile
公开端口80,但您没有在docker compose.yml
文件中映射它
尝试将docker compose yml
文件更新为以下内容:
docker compose yml
ports:
- <hostport>:<containerport>
ports键将把端口从主机映射到容器。简化语法:
version: '3.4'
services:
apiserver:
image: ${DOCKER_REGISTRY-}apiserver
build:
context: ./
dockerfile: ./ApiServer/Dockerfile
volumes:
- /var/run/docker.sock:/tmp/docker.sock
ports:
- 8080:80
network_mode: "host"
这样做的效果是,当您从容器内部解析localhost
和127.0.0.1
时,您将实际获得主机。但是,如果您将容器部署到swarm,这将不起作用。因此,我的问题是,我的容器apiservice需要能够连接到主机操作系统,而不是通过映射,而是位于同一网络上。这是因为我的应用程序最终会有一个数据库,所以它现在就在一个compose中。我的apiservice需要连接到新的网桥网络和原始主机级默认网桥网络。如果您遇到特定错误,请将其包括在内。我不知道这是个问题:/n如果我在docker compose之外运行容器,我会得到我想要的。如果我使用docker compose运行容器,它就永远不会连接到我的主机守护进程。在没有docker compose的情况下运行容器时,您使用了什么命令?您解决了这个问题吗?有什么我能帮忙的吗?信息/解决方案是否有用?
version: '3.4'
services:
apiserver:
image: ${DOCKER_REGISTRY-}apiserver
build:
context: ./
dockerfile: ./ApiServer/Dockerfile
volumes:
- /var/run/docker.sock:/tmp/docker.sock
ports:
- 8080:80
network_mode: "host"