给正在运行的docker容器添加额外的挂载目录

709 阅读2分钟

查看要修改的docker容器的id

[root@node1 ~]# docker ps
CONTAINER ID   IMAGE                     COMMAND                  CREATED        STATUS                   PORTS                                                                                                             NAMES
ef8538453837   27aa51b3ca68              "/usr/bin/tini -- /u…"   35 hours ago   Up 2 minutes             0.0.0.0:8099->8080/tcp, :::8099->8080/tcp, 0.0.0.0:50099->50000/tcp, :::50099->50000/tcp                          myjenkins

可以看到容器的ID是以ef8538453837开头的

停止docker容器

[root@node1 ~]# docker stop myjenkins

停止docker容器后再停止docker服务

需要停止docker服务,要不然后面修改配置文件有可能会不生效

[root@node1 ~]# systemctl stop docker

修改容器的hostconfig.json文件

[root@node1 ~]# vim /var/lib/docker/containers/ef8538453837529e1fb5a1b30dd7030595bd2f92704b5032c133d4e6da876bcc/hostconfig.json

修改内容如下

{
  "Binds": [
    "/usr/local/jenkins:/var/jenkins_home",
    "/usr/local/maven:/usr/local/maven"   // 前面为宿主机路径,后面为映射到docker容器的路径
  ],
  "ContainerIDFile": "",
  "LogConfig": { "Type": "json-file", "Config": {} },
  "NetworkMode": "default",
  "PortBindings": {
    "50000/tcp": [{ "HostIp": "", "HostPort": "50099" }],
    "8080/tcp": [{ "HostIp": "", "HostPort": "8099" }]
  },
  "RestartPolicy": { "Name": "always", "MaximumRetryCount": 0 },
  "AutoRemove": false,
  "VolumeDriver": "",
  "VolumesFrom": null,
  "ConsoleSize": [24, 211],
  "CapAdd": null,
  "CapDrop": null,
  "CgroupnsMode": "private",
  "Dns": [],
  "DnsOptions": [],
  "DnsSearch": [],
  "ExtraHosts": null,
  "GroupAdd": null,
  "IpcMode": "private",
  "Cgroup": "",
  "Links": null,
  "OomScoreAdj": 0,
  "PidMode": "",
  "Privileged": false,
  "PublishAllPorts": false,
  "ReadonlyRootfs": false,
  "SecurityOpt": null,
  "UTSMode": "",
  "UsernsMode": "",
  "ShmSize": 67108864,
  "Runtime": "runc",
  "Isolation": "",
  "CpuShares": 0,
  "Memory": 0,
  "NanoCpus": 0,
  "CgroupParent": "",
  "BlkioWeight": 0,
  "BlkioWeightDevice": [],
  "BlkioDeviceReadBps": [],
  "BlkioDeviceWriteBps": [],
  "BlkioDeviceReadIOps": [],
  "BlkioDeviceWriteIOps": [],
  "CpuPeriod": 0,
  "CpuQuota": 0,
  "CpuRealtimePeriod": 0,
  "CpuRealtimeRuntime": 0,
  "CpusetCpus": "",
  "CpusetMems": "",
  "Devices": [],
  "DeviceCgroupRules": null,
  "DeviceRequests": null,
  "MemoryReservation": 0,
  "MemorySwap": 0,
  "MemorySwappiness": null,
  "OomKillDisable": null,
  "PidsLimit": null,
  "Ulimits": null,
  "CpuCount": 0,
  "CpuPercent": 0,
  "IOMaximumIOps": 0,
  "IOMaximumBandwidth": 0,
  "MaskedPaths": [
    "/proc/asound",
    "/proc/acpi",
    "/proc/kcore",
    "/proc/keys",
    "/proc/latency_stats",
    "/proc/timer_list",
    "/proc/timer_stats",
    "/proc/sched_debug",
    "/proc/scsi",
    "/sys/firmware"
  ],
  "ReadonlyPaths": [
    "/proc/bus",
    "/proc/fs",
    "/proc/irq",
    "/proc/sys",
    "/proc/sysrq-trigger"
  ]
}

修改容器的config.v2.json文件

[root@node1 ~]# vim /var/lib/docker/containers/ef8538453837529e1fb5a1b30dd7030595bd2f92704b5032c133d4e6da876bcc/config.v2.json

添加如下内容

image.png

启动docker服务

[root@node1 ~]# systemctl start docker 

查看修改后的容器的目录挂载情况

[root@node1 ~]# docker exec -it ef8538453837 bash
jenkins@ef8538453837:/$ ls /usr/local/maven/
LICENSE  NOTICE  README.txt  bin  boot  conf  lib

# 可以看到maven目录被映射进来了