Docker 容器连接
前面我们实现了通过网络端口来访问运行在 docker 容器内的服务。
容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过-P
或-p
参数来指定端口映射。
下面我们来实现通过端口连接到一个 docker 容器。
一、网络端口映射
创建一个 python 应用的容器
[root@localhost ~]#: docker run -d -P training/webapp python app.py
d7fb168b42e09389c0f3007d9c936398e02ee820346a19478c7df5c9d4500e2e
使用-P
参数创建一个容器,使用docker ps
可以看到容器端口 5000 绑定主机端口 32768
[root@localhost ~]#: docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d7fb168b42e0 training/webapp "python app.py" 53 seconds ago Up 51 seconds 0.0.0.0:32768->5000/tcp keen_dirac
也可以使用-p
标识来指定容器端口绑定到主机端口。
两种方式的区别是:
-P
:是容器内部端口随机映射到主机的高端口。-p
: 是容器内部端口绑定到指定的主机端口
[root@localhost ~]#: docker run -d -p 5000:5000 training/webapp python app.py
adf5d17b6e8315f465f152f38ea507a2f5da8accf7d5184661655a1950b655e3
[root@localhost ~]#: docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
adf5d17b6e83 training/webapp "python app.py" 34 seconds ago Up 33 seconds 0.0.0.0:5000->5000/tcp optimistic_nightingale
d7fb168b42e0 training/webapp "python app.py" 5 minutes ago Up 5 minutes 0.0.0.0:32768->5000/tcp keen_dirac
可以指定容器绑定的网络地址,比如绑定 192.168.146.128
[root@localhost ~]#: docker run -d -p 192.168.1