|问题背景
docker
创建容器时,指定了端口映射(-p)如果容器运行之后发现端口需要改怎么办?
当前是访问 9999 端口
|删除原有容器,重新创建新的容器
|删除容器
docker
|重新创建容器
docker
重新指定需要映射的端口
|优点
简单粗暴,在测试环境用的更多
|缺点
如果是数据库、服务器相关的容器,创建新的容器,又得重新配置相关东西了
|修改容器配置文件(重点)
|暂停 Docker 服务
systemctl
|进入 Docker 容器配置文件目录下
cd
|进入某个容器的配置文件目录下
容器ID 就是文件夹名称,可通过 docker ps -aq 来查看,不过这是缩写,对照起来看就行
cd
|修改 hostconfig.json
vim
输入 / ,搜索映射的端口(9999)修改端口值就行了修改完后 :wq 退出并保存此文件
|重新启动 Docker 服务
systemctl
访问 8888 端口没问题!
|注意
如果想修改 Docker 容器随着 Docker 服务启动而自启动,可看:/poloyy/p/13985567.html有些文章会写到还需要改 config.v2.json 里的端口,但实操了一遍并不需要|优点
直接操作配置文件没有副作用,算简单
|缺点
需要暂停 Docker 服务,会影响其他正常运行的 Docker 容器
|使用 docker commit 命令
|停止 Docker 容器
docker
|使用 commit 构建新镜像
docker
|使用新镜像重新创建一个 Docker 容器
docker
|修改新容器的名字
如果新容器想用回旧容器的名字,需要先删了旧容器,再改名
docker
|优点
无需停止 Docker 服务,不影响其他正在运行的容器旧容器有的配置和数据,新容器也会有,不会造成数据或配置丢失,对新旧容器都没有任何影响|缺点
需要生成新的镜像和容器,管理镜像和容器的时间成本会上升
|修改主机 iptables 端口映射
网上很多文章都有这个方法,但是我实操了一遍是不行的,不知道是不是步骤错了,哪位大佬知道可否说一声捏
参考与感谢