当先锋百科网

首页 1 2 3 4 5 6 7

Docker是一个流行的容器化平台,它允许您将应用程序及其依赖项打包成一个独立的、可移植的容器,从而在任何平台上运行。在Docker容器中,应用程序与主机操作系统隔离。然而,有时我们需要从Docker容器中访问主机的端口。

docker访问宿主端口(docker 调用宿主程序)

理解Docker容器是如何工作的是访问宿主端口的关键。默认情况下,Docker容器与主机操作系统隔离,不会直接与主机操作系统通信。因此,如果我们尝试从Docker容器中访问主机端口,我们将得到一个连接错误。


$ telnet 127.0.0.1 80
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

为了使容器可以访问主机的端口,我们需要映射主机端口到容器端口。

为此,在运行容器时需要添加-p选项,指定要映射的主机端口和容器端口。例如,如果我们想要访问主机的80端口,需要将主机的80端口映射到容器的80端口:


$ docker run -p 80:80 nginx

这条命令将Docker容器的80端口映射到主机的80端口。现在,我们可以在容器中访问主机的端口了。


$ telnet 127.0.0.1 80
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

现在我们成功访问了宿主的80端口,可以继续在容器中的应用程序中使用它。