Docker 容器 更改端口映射
在使用 Docker 运行容器时,我们经常需要将容器内部的端口映射到宿主机上,以便外部可以访问容器内的服务。本文将介绍如何使用 Docker 命令和 Docker Compose 更改已运行容器的端口映射。
Docker 命令
步骤一:查找容器的 ID 或名称
首先我们需要找到要更改端口映射的容器的 ID 或名称。可以使用以下命令列出所有正在运行的容器:
docker ps
此命令将显示所有正在运行的容器的 ID、名称、镜像、状态等信息。
步骤二:停止容器
使用以下命令停止容器(其中 <container_id_or_name>
是容器的 ID 或名称):
docker stop <container_id_or_name>
步骤三:更改端口映射
使用以下命令更改容器的端口映射(其中 <container_id_or_name>
是容器的 ID 或名称,<host_port>
是要映射到的宿主机端口,<container_port>
是容器内部的端口):
docker run -p <host_port>:<container_port> -d <container_id_or_name>
通过运行以上命令,我们可以将容器的端口映射更改为新的配置。
步骤四:启动容器
使用以下命令启动容器(其中 <container_id_or_name>
是容器的 ID 或名称):
docker start <container_id_or_name>
Docker Compose
如果您使用 Docker Compose 管理容器,可以通过编辑 docker-compose.yml
文件来更改容器的端口映射。
下面是一个示例的 docker-compose.yml
文件:
version: '3'
services:
web:
image: nginx
ports:
- <host_port>:<container_port>
在上面的示例中,我们将宿主机的 <host_port>
端口映射到容器内的 <container_port>
端口。
修改 <host_port>
和 <container_port>
的值,保存并退出文件。
然后,使用以下命令重新启动容器:
docker-compose up -d
通过运行以上命令,Docker Compose 将按照新的配置重新启动容器,并更改端口映射。
序列图
下面是一个使用序列图展示的更改 Docker 容器端口映射的过程:
sequenceDiagram
participant User
participant DockerClient
participant DockerServer
User->>DockerClient: docker stop <container_id_or_name>
DockerClient->>DockerServer: Stop container
DockerServer->>DockerClient: OK
User->>DockerClient: docker run -p <host_port>:<container_port> -d <container_id_or_name>
DockerClient->>DockerServer: Change port mapping
DockerServer->>DockerClient: OK
User->>DockerClient: docker start <container_id_or_name>
DockerClient->>DockerServer: Start container
DockerServer->>DockerClient: OK
以上序列图展示了用户停止容器、更改端口映射和重新启动容器的过程。
至此,我们介绍了使用 Docker 命令和 Docker Compose 更改容器的端口映射的方法。希望本文对您理解和使用 Docker 有所帮助。
参考资料:
- Docker Documentation: [
- Docker Compose Documentation: [