在实践中,经常会碰到多个服务组件容器共同协作的情况,这往往需要多个容器之间,能够互相访问到对方的服务。
Docker 除了通过网络访问外,还提供了两个很方便的功能,来满足服务访问的基本需求:
- 允许映射容器内应用的服务端口到宿主机。
- 互联机制实现多个容器间,通过容器名来快速访问。
端口映射实现容器访问
从外部访问容器应用
当容器中运行一些网络应用,要让外部访问这些应用时,可以通过 -P 或 -p 参数来指定端口映射。
当使用 -P 参数时,Docker 会随机映射一个端口到内部容器开放的网络端口:
1 | $ docker run -d -P training/webapp python app.py |
当使用 -p 参数时,可以指定要映射的端口,并且在一个指定端口上,只可以绑定一个容器。