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