天天看点

Docker学习之路:端口映射

端口映射的几种方式

  • 使用-P(大写)映射容器的端口,此时会随机分配一个主机的端口
docker run -d -P training/webapp python app.py
docker ps #查看刚刚运行的容器会发现,此时的容器已经暴露了5000端口,映射到了本地主机随机分配的端口(49000-49900)
           
  • 使用-p,可以自定义暴露端口,例如将容器5000端口暴露成主机的5001端口
支持的格式 IP:HostPort:ContainerPort | IP: :ContainerPort | HostPort:ContainerPort
docker run -d -p 5001:5000 training/webapp python app.py
docker run -d -p 127.0.0.1:5002:5000 training/webapp python app.py
docker run -d -p 127.0.0.1::5000 training/webapp python app.py
# 查看端口映射的情况 docker port IMAGEID|IMAGENAME 
#例如有个name为web1的容器
docker port web
docker port web 5002
           

容器之间的互联[link]

#下面的以python应用连接postgres数据库为例
docker run -d --name db trainning/postgres
#--link name:alias
docker run  -d -P --name webs --link db:db trainning/webapp python app.py
           
那么docker是怎么公开连接信息的呢,一共有两种方式,一种是更新环境变量,另一种是更新/etc/hosts文件,可以进入容器看看这些信息。