docker里面容器开放的端口和我window11主机的端口有联系吗?window11主机要怎么访问容器开放的端口
时间: 2023-12-22 16:46:41 浏览: 115
Docker容器开放的端口和你的Windows 11主机端口是有联系的。当你运行Docker容器时,可以通过指定容器的端口映射将容器内部的端口映射到主机的端口上。这样,当你在主机上访问映射的主机端口时,请求将被转发到容器的相应端口上。
例如,假设你在运行一个Web应用程序容器,它监听容器内部的80端口。你可以使用以下命令将容器的80端口映射到主机的8080端口上:
```
docker run -p 8080:80 webapp
```
现在,当你在Windows 11主机上访问http://localhost:8080时,请求将被转发到容器的80端口上。
请注意,如果你在Docker Desktop for Windows中运行Docker容器,则可以直接使用localhost访问主机端口。但如果你在Docker Toolbox中运行Docker,则需要使用Docker Machine IP地址来访问主机端口。你可以使用以下命令来获取Docker Machine IP地址:
```
docker-machine ip
```
然后,在浏览器中访问http://<docker-machine-ip>:8080来访问容器的80端口。
相关问题
window docker 容器添加映射端口
要给 docker 容器添加端口映射,可以使用 `-p` 或者 `--publish` 选项。
语法如下:
```bash
docker run -p <host_port>:<container_port> ...
```
其中 `<host_port>` 是指要映射到主机上的端口号,`<container_port>` 是指容器内部需要暴露的端口号。
例如,要将容器内部的 `80` 端口映射到主机的 `8080` 端口上,可以使用以下命令:
```bash
docker run -p 8080:80 <image_name>
```
这样就可以通过访问 `http://localhost:8080` 来访问容器内部的服务了。
window docker 给已启动容器添加映射端口
要给已经启动的 Docker 容器添加端口映射,可以使用 `docker container update` 命令。
语法如下:
```bash
docker container update --publish <host_port>:<container_port> <container_name_or_id>
```
其中 `<host_port>` 是指要映射到主机上的端口号,`<container_port>` 是指容器内部需要暴露的端口号,`<container_name_or_id>` 是指目标容器的名称或 ID。
例如,假设我们已经有一个名为 `mycontainer` 的容器运行,并且它暴露了 `80` 端口,现在我们想要将它映射到主机的 `8080` 端口上,可以使用以下命令:
```bash
docker container update --publish 8080:80 mycontainer
```
这样就可以通过访问 `http://localhost:8080` 来访问容器内部的服务了。注意,如果容器原先没有暴露端口,则需要在启动容器时添加 `-p` 或 `--publish` 选项来指定端口映射。
阅读全文