目录

  • 前言
  • 方法1:将容器转换成镜像,用新的镜像创建新的容器
  • 方法2:修改容器配置
  • 方法3:创建新的容器
  • 方法4:nginx stream代理
  • 参考


前言

docker 创建容器时可指定端口映射。但容器一旦生成,暂无法通过命令直接修改端口映射。

方法1:将容器转换成镜像,用新的镜像创建新的容器

因只能在 docker rundocker create 命令时通过-P命令指定端口,因此可以将当前容器保存成镜像,再通过镜像创建新的容器。比如这样:

docker修改redis docker修改容器配置_docker

docker修改redis docker修改容器配置_docker_02

方法2:修改容器配置

可以直接修改容器的配置文件:

docker修改redis docker修改容器配置_mysql_03


要点:

  1. 修改前一定要先备份,以防手滑。
  2. 修改配置文件时,一定要先停止容器。作用为:避免docker缓存的干扰。
  3. 修改完配置文件时,一定要先重启docker。作用为:清除docker缓存。

修改hostconfig.json时,找到PortBindings节点进行修改:

"PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3306"}]}

方法3:创建新的容器

原来的容器不要了,直接创建一个新的容器。缺点:丢失数据。

方法4:nginx stream代理

如果有nginx时,可以通过nginx的stream代理替代docker的端口映射。
参考:nginx stream代理