上下文
我可以访问本地网络中其他计算机的某些本地主机。例如,其中一个称为pandahost
,因此,如果我在浏览器中浏览pandahost
,则可以访问它。
目前,我一直在使用docker,并且具有以下Docker-compose.yml:
version: "3"
services:
myproject:
build:
context: .
dockerfile: Dockerfile-for-my-project-environment
shm_size: 2gb
volumes:
- "D:/project/myproject1/folder:/myproject1"
- "D:/project/myproject2:/myproject2"
我使用此docker-compose文件运行服务myproject
的多个实例,因此,我不想公开任何端口,以避免端口冲突。
到目前为止,除了我无法从服务容器连接到pandahost
之外,一切对我的都正常。
问题
是否有任何方法可以将服务myproject
容器连接到pandahost
,而不会暴露任何端口,也不会破坏拥有myproject
服务容器的多个实例的可能性?
答案 0 :(得分:0)
如果您知道容器正在打开的端口,则只需使用以下命令即可获取容器的IP地址:
alias docker_ip_address="docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'"
docker_ip_address $container_ID
或更简单地
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $container_ID
在这种情况下,建议您使用docker-compose.yml中的container_name
块为容器命名,以简化之前的操作。