1、端口映射
1.1、創建python應用容器
[dkuser@c741 ~]$ docker run -d -P training/webapp python app.py
[dkuser@c741 ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
01cf9224f4e0 training/webapp "python app.py" 7 seconds ago Up 6 seconds 0.0.0.0:32769->5000/tcp upbeat_albattani
1.2、使用 -p 標識來指定容器端口綁定到主機端口
[dkuser@c741 ~]$ docker run -d -p 5000:5000 training/webapp python app.py
指定端口兩種方式的區別是:
-P :是容器內部端口隨機映射到主機的高端口
-p : 是容器內部端口綁定到指定的主機端口
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32228f38aeae training/webapp "python app.py" 7 seconds ago Up 6 seconds 0.0.0.0:5000->5000/tcp amazing_austin
1.3、指定容器綁定網絡地址
[dkuser@c741 ~]$ docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
[dkuser@c741 ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f5343791545c training/webapp "python app.py" 21 seconds ago Up 20 seconds 127.0.0.1:5001->5000/tcp affectionate_margulis
可以通過訪問 127.0.0.1:5001 來訪問容器的 5000 端口
[dkuser@c741 ~]$ curl http://127.0.0.1:5001
Hello world!
1.4、綁定udp端口
[dkuser@c741 ~]$ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
查看端口綁定信息
[dkuser@c741 ~]$ docker port f5343791545c 5000
127.0.0.1:5001
2、容器連接
端口映射並不是唯一把 docker 連接到另一個容器的方法。
docker 有一個連接系統允許將多個容器連接在一起,共享連接信息。
docker 連接會創建一個父子關係,其中父容器可以看到子容器的信息。
可以使用 --name 標識來命名容器
[dkuser@c741 ~]$ docker run -d -P --name testweb training/webapp python app.py
[dkuser@c741 ~]$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ed95b6edc8c1 training/webapp "python app.py" 16 seconds ago Up 15 seconds 0.0.0.0:32770->5000/tcp testweb
參考:
https://www.runoob.com/docker/docker-tutorial.html