天天看點

Docker端口映射(六)

一、容器端口映射

1.1. 外部通路容器

  在啟動容器時候,如果不指定參數,在容器外部是無法通過網絡來通路容器内的服務的

  當容器運作一些網絡服務的時候,我們可以通過指定-p或者-P參數來實作能夠讓外部通路的效果

  1. -P(大P) :Docker會随機映射一個49000~49900的端口到内部容器開放的網絡端口
  2. -p(小p):  可以指定要映射的端口,并且在一個指定端口上隻可以綁定一個容器
[root@rsync131 ~]# docker run -it -P -d --name web -v /opt/web/ centos
[root@rsync131 ~]# docker run -it -d -p 5000:5000 -v /opt/data/docker:/tmp/registry registry      

1.2. 映射到指定位址的指定端口

  可以使用IP:HostPort:ContainerPort格式指定映射使用一個特定的位址

[root@rsync131 ~]# docker run -it -d -p 127.0.0.1:2000:2000 centos      

  還可以綁定udp端口

[root@rsync131 ~]# docker run -it -d -p 127.0.0.1:2000:2000/udp centos      

1.3. 映射到指定位址的任意端口

  使用IP::ContainerPort綁定IP的任意端口到容器的2000端口,本地主機會自動的配置設定端口

[root@rsync131 ~]# docker run -it -d -p 127.0.0.1::2000 centos      

1.4. 檢視映射端口的配置

  使用docker port 指令來檢視目前映射的端口配置

[root@rsync131 ~]# docker port 6df20cdacf8d
5000/tcp -> 0.0.0.0:5000
      

  容器有自己内部的IP和網絡,可以使用docker inspect + 容器名或者容器ID 檢視具體的資訊

二、容器與容器直接實作互聯

2.1. 自定義容器名

  容器的連接配接系統是根據容器的名字來執行的,是以要先給容器起一個好記得名字

  在使用docker run 建立容器的是 指定--name 來定義容器的名字

[root@rsync131 ~]# docker run -it -P -d --name web1 -v /opt/web:/opt/ centos      

  可以使用docker inspect 來看容器的名字

[root@rsync131 ~]# docker inspect -f "{{ .Name }}" 042d3c956715
/db8      

2.2. 容器互聯

  使用--link參數可以實作容器之間的安全互動

[root@rsync131 ~]# docker run -it -d -P --name link --link db1:db1 centos      

作者:朱敬志

出處:https://www.cnblogs.com/zhujingzhi/

-------------------------------------------

個性簽名:在逆境中要看到生活的美,在希望中别忘記不斷奮鬥

如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,部落客在此感謝!

萬水千山總是情,打賞一分行不行,是以如果你心情還比較高興,也是可以掃碼打賞部落客,哈哈哈(っ•̀ω•́)っ✎⁾⁾!

也可以關注我的微信公衆号,不定時更新技術文章(kubernetes,Devops,Python)等