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/名字