在实践中, 经常会碰到需要多个服务组件容器共同协作的情况, 这往往需要多个容器之间能够互相访问到对方的服务。Docker 除了通过网络访间外, 还提供了两个很方便的功能来满足服务访问的基本需求:一个是允许映射容器内应用的服务端口到本地宿主主机;另 一个是互联机制实现多个容器间通过容器名来快速访问。
端口映射实现容器访问
从外部访问容器应用
在启动容器的时候, 如果不指定对应参数, 在容器外部是无法通过网络来访问容器内的网络应用和服务的。
当容器中运行一些网络应用, 要让外部访问这些应用时, 可以通过-P或-p参数来指定端口映射。当使用平(大写的)标记时, Docker 会随机映射一个 49000-49900 的端口到内部容器开放的网络端口:
docker run -d -P training/webapp python app.py
同样, 可以通过 docker logs 命令来查看应用的信息:
-p (小写的)则可以指定要映射的端口,并且,在一 个指定端口上只可以绑定 一 个容器。
映射所有接口地址
使用HostPort: ContainerPort格式本地的5000端口映射到容器的50