当我们启动 Docker 容器后,默认情况下并不能直接通过外部网络访问里面运行的服务。为了让外部网络能够访问容器中运行的服务,我们需要设置端口映射。这样通过主机的 IP 地址和映射的端口就能访问到容器中运行的服务了。
Docker 给运行中的容器设置端口映射的方法主要分为两种,分别是使用 docker run
命令设置映射和使用 docker container
命令设置已经运行的容器的映射。
使用 docker run
命令设置映射
在使用 docker run
命令启动容器时,可以通过 -p
参数设置端口映射,具体语法如下:
docker run -p [宿主机端口]:[容器端口] [镜像名]
其中,[宿主机端口]
是指外部网络访问时的端口,[容器端口]
是指容器中运行服务的端口,[镜像名]
是指要启动的镜像名称。
例如,在本地启动一个 Nginx 服务并映射到 80 端口上,使用的命令如下:
docker run -p 80:80 nginx
这里将主机的 80 端口映射到容器中 Nginx 服务的 80 端口,然后启动 Nginx 服务。
使用 docker container
命令设置已经运行的容器的映射
在容器运行时,也可以使用 docker container
命令设置已经运行的容器的端口映射。具体做法如下:
docker container run --expose [容器端口] -p [宿主机端口]:[容器端口] [容器 ID 或名称]
其中,--expose
参数指定容器中暴露出来的端口,[容器端口]
是容器中运行服务的端口,[宿主机端口]
是映射到主机上的端口,[容器 ID 或 名称]
是容器的标识符。
例如,如果要将一个名为 web
的容器中的 80 端口映射到主机的 8080 端口上,可以执行以下命令:
docker container run --expose 80 -p 8080:80 web
以上就是 Docker 给运行中的容器设置端口映射的方法。通过映射端口,可以让外部网络访问容器中运行的服务,实现容器与外部网络之间的通讯。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker 给运行中的容器设置端口映射的方法 - Python技术站