在实践中,经常会碰到需要多个服务组件容器互相访问的情况,Docker提供了两个很方便的功能来满足服务访问的基本需求:
- 映射容器内应用的服务端口到本地宿主主机;
- 互联机制实现多个容器间通过容器名来快速访问。
端口映射实现访问容器
- 从外表访问容器应用
可以通过-P
或-p
参数来指定端口映射。当使用-P
时,Docker 会随机映射一个49000~49900
的端口到内部容器开放的网络端口:
docker run -d -P training/webapp python app.py
-p
可以知道要映射的端口,并且,在一个指定端口上只可以绑定一个容器。
支持的格式有IP:HostPort:ContainerPort | IP::ContainerPort | HostPort:ContainerPort
- 映射所有接口地址
下面的命令将宿主机的5000端口映射到容器的5000端口:
docker run -d -p 5000:5000 training/webapp python app.py
多次使用-p
可以绑定多个端口:
docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py
- 查看映射端口配置
使用docker port
命令来查看当前映射的端口配置,也可以看到绑定的地址:
docker port mostalgic_morse 5000
互联机制实现便捷访问
容器互联会在源和接受容器之间创建连接关系,接受容器可以通过容器名快速访问到源容器,而不用指定具体的IP地址。
- 自定义容器命名
网友评论