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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM