Docker 运行容器指定端口号教程

阅读时长 3 分钟读完

Docker 是一个开源平台,能够让开发者轻松地打包、部署、运行应用程序。其中最重要的组成部分就是容器,容器是被打包的应用程序及其依赖关系的轻量级标准化部署单元。在一个容器内,应用程序可以在隔离的环境下运行。

在使用 Docker 运行容器时,经常需要指定容器端口号,以便在宿主机上访问容器内的服务。这篇文章将为大家介绍如何在 Docker 容器中指定端口号以及如何在宿主机上访问容器内的服务。

Docker 容器指定端口号

语法

在 Dockerfile 中,通过 EXPOSE 指令来指定容器应该监听哪一个端口。语法如下:

其中,<port> 是必选的参数,指定容器监听的端口号。<protocol> 是可选的参数,指定端口号使用的协议,如:TCP 或 UDP。

下面是一个使用 EXPOSE 指令的例子:

上面的例子中,我们指定容器监听 80 端口,因为这个容器中运行的是 Nginx Web 服务器。

运行容器时指定映射端口

我们在启动容器时,可以使用 --publish-p 参数来映射容器内指定的端口到宿主机上,语法如下:

其中,<host_port> 是宿主机上的端口号,<container_port> 是容器中要映射的端口号,<image> 是要运行的 Docker 镜像名称。

下面是一个使用 docker run 启动一个 Node.js Web 应用的例子,将宿主机的 3000 端口映射到容器中的 80 端口:

在这个例子中,我们将 Node.js Web 应用的容器内的 80 端口映射到宿主机的 3000 端口上,这样我们就可以通过 http://localhost:3000 来访问该应用程序。

如何访问容器内的服务

我们可以使用 Docker CLI 工具来查看容器的端口映射情况:

这个命令会列出当前正在运行的所有容器信息,包括容器 ID、镜像名称、状态、端口等信息。

如果想要通过宿主机访问 Docker 容器中的服务,可以使用容器的 IP 地址加上映射的端口号。可以通过 docker inspect 命令来获取容器的 IP 地址:

其中 <container_id> 是容器的 ID。

这样就可以通过 http://<container_ip>:<host_port> 来访问容器内的服务了。

总结

在使用 Docker 运行容器时,通过指定端口号,我们可以方便地在宿主机上访问容器内的服务。同时,我们也可以使用 Docker CLI 工具来查看容器的端口映射情况,和获取容器的 IP 地址。这些操作都是非常简单、实用的技能,对于前端开发者来说也是一个比较必要的技巧。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64603b47968c7c53b01fbda9

纠错
反馈