Docker Compose在容器中设置Linux Docker主机IP地址';s/etc/hosts
在使用Docker Compose时,当主机运行Linux时,如何在Docker容器的Docker Compose在容器中设置Linux Docker主机IP地址';s/etc/hosts,linux,docker,ubuntu,networking,docker-compose,Linux,Docker,Ubuntu,Networking,Docker Compose,在使用Docker Compose时,当主机运行Linux时,如何在Docker容器的/etc/hosts文件中确定和设置Docker主机的IP地址?我希望容器中有一个主机名,如DOCKER\u HOST,以引用DOCKER主机 与Docker for Windows和Docker for Mac不同,Docker for Linux尚不支持主机.Docker.internal,因此我们需要一种替代方案 --此处不能使用网络主机,因为出于我的目的,容器中的本地主机仍必须引用容器本身 Docker
/etc/hosts
文件中确定和设置Docker主机的IP地址?我希望容器中有一个主机名,如DOCKER\u HOST
,以引用DOCKER主机
与Docker for Windows和Docker for Mac不同,Docker for Linux尚不支持主机.Docker.internal,因此我们需要一种替代方案
--此处不能使用网络主机
,因为出于我的目的,容器中的本地主机
仍必须引用容器本身
Docker Compose支持使用extra_hosts
在/etc/hosts
中添加主机名ip映射,但我无法确定如何自动确定要使用的主机ip地址
version: '3'
services:
api:
build: .
ports:
- "8080:8080"
extra_hosts:
- "DOCKER_HOST:X.X.X.X" # <=== How do we automatically set this IP address?
或者我们可以在Docker compose.yml中为Docker主机设置静态IP吗?您可以尝试:
DOCKER_HOST=$(python -c 'import socket;print(socket.gethostbyname(socket.gethostname()))') docker-compose up -d
这回答了你的问题吗@RajSrujanJalem认为我需要到docker主机而不是容器的静态IP您可以使用
-e
选项传递环境变量,或者您希望使用命令获取主机IP?@Philippe命令获取主机IP在这里非常有用
DOCKER_HOST=$(python -c 'import socket;print(socket.gethostbyname(socket.gethostname()))') docker-compose up -d