天天看點

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檔案,可以進入容器看看這些資訊。