docker容器如何修改映射端口 以及容器自身端口修改后如何使外界正常连接

第一种

直接删了重新运行容器 (丢失配置不可取)

第二种

commit 将容器打包为一个新的镜像 再以此镜像创建容器

第三种

修改mysql 端口为3309

容器mysql:5.7 配置文件默认在 /etc/mysql/mysql.conf.d/mysqld.cnf 

docker里没有vim vi

使用docker cp 复制下文件 在传到容器目录内

docker cp mysql-docker:/etc/mysql/mysql.conf.d/mysqld.cnf /home/mysql/mysql_conf

docker cp /home/mysql/mysql_conf/mysqld.cnf mysql-docker:/etc/mysql/mysql.conf.d/mysqld.cnf 

停止docker systemctl stop docker

修改两个文件

cd /var/lib/docker/containers/

ls #查看容器id

 cd 9ef888d292ad093b012070eaf1dc50c61b251f3597a0e9f145483c4159627e79/ 进入要修改的容器id

ls  修改下面两个文件

hostconfig.json  config.v2.json(若只是修改映射的外部端口 此文件不用改 若修改容器内部端口则要改)

vim hostconfig.json

"PortBindings":{"3309/tcp":[{"HostIp":"","HostPort":"3309"}]}  #"3309/tcp" 为容器内部端口 "HostPort":"3309" 主机映射端口

vim config.v2.json

"ExposedPorts":{"33060/tcp":{},"3309/tcp":{}}," #容器内部端口

启动docker 

systemctl start docker

启动容器

docker start 容器id/名字

 

posted @ 2022-05-13 22:30  忆笙歌  阅读(255)  评论(0编辑  收藏  举报