首先需要获取容器的IP地址:
# 查看运行中容器的IP地址
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名称或ID
# 或者使用更详细的inspect命令
docker inspect 容器名称或ID | grep IPAddress
获取IP后,可以直接从宿主机访问:
ping 容器IP
curl http://容器IP:端口
在容器内部可以直接使用其他容器的IP地址进行访问。
更推荐的方式是使用容器名称而非IP地址,因为IP可能会变化:
# 在另一个容器中
ping 容器名称
访问方式受Docker网络模式影响: - bridge模式:默认模式,容器有独立IP - host模式:容器使用宿主机的网络栈,没有独立IP - none模式:容器没有网络
为获得更好的容器间通信,可以创建自定义网络:
docker network create my-network
docker run --network=my-network --name=container1 ...
docker run --network=my-network --name=container2 ...
这样容器间可以通过名称直接访问。
-p
参数)