一、容器端口映射
1.1. 外部訪問容器
在啟動容器時候,如果不指定參數,在容器外部是無法通過網絡來訪問容器內的服務的
當容器運行一些網絡服務的時候,我們可以通過指定-p或者-P參數來實現能夠讓外部訪問的效果
- -P(大P) :Docker會隨機映射一個49000~49900的端口到內部容器開放的網絡端口
- -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