Docker学习笔记四:Docker给已经启动的容器添加目录映射、端口映射

启动的容器添加目录映射

方案

  • 容器数据保存在映射目录下,并保留原容器的创建命令
    • a、修改挂载目录只需要将原容器命令添加需要的映射的目录;
    • b、删除需要映射新目录的容器;
    • c、根据更新好的创建容器命令再新建容器即可。
  • 容器容器没有保存在映射目录下,也不清楚原容器的创建命令
    • 参考下面的给启动的容器添加映射目录的方法。

准备

  • 记录下容器的ID(如下图:f4760296bcf1),并停止需要添加映射目录的容器
  • 命令
    • 查看运行的容器:docker ps
    • 查看已映射目录:docker inspect container_name | grep Mounts -A 20
    • 停止运行的容器:docker stop container_name

配置

进入容器工作目录

  • 查看docker的根目录命令:docker info | grep Root

修改容器配置文件

  • a、进入到容器的目录
    • 命令:cd /var/lib/docker/containers/containers_id

  • b、修改容器的“config.v2.json”配置文件
    • 在“MountPoints”数组,最后添加宿主机目录“/opt/file”映射到容器的“/file”目录下,如下:
"/file": {
            "Source": "/opt/file",
            "Destination": "/file",
            "Driver": "",
            "Name": "",
            "Propagation": "rprivate",
            "RW": true,
            "Relabel": "ro",
            "SkipMountpointCreation": false,
            "Spec": {
                "Source": "/opt/file",
                "Target": "/file",
                "Type": "bind"
            },
            "Type": "bind"
}

  • c、修改容器的“hostconfig.json”配置文件
    • 在“Binds”数组,最后添加目录映射配置,如下:
"Binds": [
        "/opt/file:/file"
]

  • d、重启docker和容器
    • 重启docker服务:systemctl restart docker
    • 重启容器服:docker start containers_id
    • 注意:要重启docker服务,否则修改的配置文件无效,会被还原

 

启动的容器添加端口映射

  • 进入容器所在目录,修改“hostconfig.json”文件,在“PortBindings”添加端口。
    • 命令:cd /var/lib/docker/containers/container_id
    • 命令:vim hostconfig.json

  • 进入容器所在目录,修改“config.v2.json”文件,在“ExposedPorts”添加端口。
    • 命令:cd /var/lib/docker/containers/container_id
    • 命令:vim config.v2.json

  • 重启docker服务
    • 命令:systemctl restart docker
    • 命令:docker start containers_id
    • 注意:要重启docker服务,否则修改的配置文件无效,会被还原

 

posted @ 2022-11-09 15:51  零下一度的微笑  阅读(11519)  评论(0编辑  收藏  举报