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: [