修改docker mysql容器端口的映射

修改docker mysql容器端口的映射

参考来源地址:https://blog.csdn.net/my_chenjie/article/details/85058032

大家都知道docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改。通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射。

有没有办法不保存镜像而直接修改已有的这个容器呢?有

我的操作步骤是:

  1. 停止容器 (docker stop container_id)
docker stop 712a3f0e5035
  1. 停止docker服务(systemctl stop docker)
systemctl stop docker
  1. 修改这个容器的hostconfig.json文件中的端口
    cd /var/lib/docker/712a3f0e5035* #这里是CONTAINER ID
    vi hostconfig.json
    如果之前没有端口映射, 应该有这样的一段:
    “PortBindings”:{}
    增加一个映射, 这样写:
    “PortBindings”:{“3306/tcp”:[{“HostIp”:"",“HostPort”:“3307”}]}
    前一个数字是容器端口, 后一个是宿主机端口.
    而修改现有端口映射更简单, 把端口号改掉就行.
    我改成"PortBindings":{“3306/tcp”:[{“HostIp”:"",“HostPort”:“3306”}]}

(原帖有人提到,如果config.v2.json里面也记录了端口,也要修改)

  1. 启动docker服务(systemctl start docker)
systemctl start docker
  1. 启动容器
docker start 712

查看修改后的结果为:

[root@node114 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS                    NAMES
52ecb0aa3b1b        supermap/iportal    "/bin/sh -c /opt/run…"   8 weeks ago         Exited (137) 13 minutes ago                            iportalserver
9f1c40dd51cf        supermap/iserver    "/bin/sh -c /opt/run…"   8 weeks ago         Exited (137) 13 minutes ago                            supermapiserver
712a3f0e5035        8ef3                "container-entrypoin…"   8 weeks ago         Up 3 seconds                  0.0.0.0:3306->3306/tcp   MYSQL56docker
5c58116a7eb7        nginx               "nginx -g 'daemon of…"   8 weeks ago         Exited (0) 4 weeks ago                                 test

你可能感兴趣的:(docker)