我们有时候在创建docker 容器的时候会忘记加某个参数,这个时候可以使用docker container update 命令将缺少的参数添加进去。

但是如果你想加的东西没办法通过这种方式加进去怎么办呢?

这时候就可以直接修改配置文件,首先找到你要修改的容器路径,容器路径在 /var/lib/docker/containers/容器id 目录下,根据容器id找到对应容器的目录。

比如要把宿主机的maven映射到容器中,并且能够在容器中执行,那么可以修改config.v2.json文件,这里可以找到env下的PATH变量,然后将映射进去的maven加入到后面就可以了。

但是修改之前我们要做一个事,就是停止容器,以及docker服务。

docker stop gitbucket //停止jenkins
systemctl stop docker.socket //记得停止这个服务,否则docker是没办法停止的
systemctl stop docker //停止docker

然后修改config.v2.json文件,修改完成之后再重新启动服务即可。

{
    "StreamConfig": {},
    "State": {
        "Running": true,
        "Paused": false,
        "Restarting": false,
        "OOMKilled": false,
        "RemovalInProgress": false,
        "Dead": false,
        "Pid": 96771,
        "ExitCode": 0,
        "Error": "",
        "StartedAt": "2023-01-27T16:51:28.665042338Z",
        "FinishedAt": "2023-01-27T16:51:25.761331375Z",
        "Health": null
    },
    "ID": "0e5d059f2d0a2f8a90cee0c105b9ee48ec9f1ec1b205ddcf0bb33996aea20bc0",
    "Created": "2023-01-27T16:22:10.240933229Z",
    "Managed": false,
    "Path": "sh",
    "Args": ["-c", "java -jar /opt/gitbucket.war --port=80"],
    "Config": {
        "Hostname": "0e5d059f2d0a",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "ExposedPorts": {
            "29418/tcp": {},
            "8080/tcp": {}
        },
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": ["TZ=Asia/Shanghai", "PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "LANG=en_US.UTF-8", "LANGUAGE=en_US:en", "LC_ALL=en_US.UTF-8", "JAVA_VERSION=jdk8u292-b10", "JAVA_HOME=/opt/java/openjdk"],
        "Cmd": ["sh", "-c", "java -jar /opt/gitbucket.war"],
        "Image": "gitbucket/gitbucket",
        "Volumes": {
            "/gitbucket": {}
        },
        "WorkingDir": "",
        "Entrypoint": null,
        "OnBuild": null,
        "Labels": {
            "maintainer": "Naoki Takezoe \u003ctakezoe [at] gmail.com\u003e"
        }
    },
    "Image": "sha256:2efe68beac20769935a889a18231414b975e28c1226e77190dfa1c441b886a53",
    "NetworkSettings": {
        "Bridge": "",
        "SandboxID": "73acb3a41214f7eae94fbee2495706e0f8f48089c8383f08854aadf77cf78f3c",
        "HairpinMode": false,
        "LinkLocalIPv6Address": "",
        "LinkLocalIPv6PrefixLen": 0,
        "Networks": {
            "macnet": {
                "IPAMConfig": {
                    "IPv4Address": "192.168.10.30"
                },
                "Links": null,
                "Aliases": ["0e5d059f2d0a"],
                "NetworkID": "b13df5c9a8aa66467e471efacae323bc58563b321961d059d93aa750c335e19e",
                "EndpointID": "8375195e9698b9f7b782a6a2514cdd7adad550aab34dd6069232f2c130d7d8df",
                "Gateway": "192.168.10.3",
                "IPAddress": "192.168.10.30",
                "IPPrefixLen": 24,
                "IPv6Gateway": "",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "MacAddress": "02:42:c0:a8:0a:1e",
                "DriverOpts": null,
                "IPAMOperational": false
            }
        },
        "Service": null,
        "Ports": {},
        "SandboxKey": "/var/run/docker/netns/73acb3a41214",
        "SecondaryIPAddresses": null,
        "SecondaryIPv6Addresses": null,
        "IsAnonymousEndpoint": false,
        "HasSwarmEndpoint": false
    },
    "LogPath": "/var/lib/docker/containers/0e5d059f2d0a2f8a90cee0c105b9ee48ec9f1ec1b205ddcf0bb33996aea20bc0/0e5d059f2d0a2f8a90cee0c105b9ee48ec9f1ec1b205ddcf0bb33996aea20bc0-json.log",
    "Name": "/gitbucket",
    "Driver": "overlay2",
    "OS": "linux",
    "MountLabel": "",
    "ProcessLabel": "",
    "RestartCount": 0,
    "HasBeenStartedBefore": true,
    "HasBeenManuallyStopped": false,
    "MountPoints": {
        "/etc/localtime": {
            "Source": "/etc/localtime",
            "Destination": "/etc/localtime",
            "RW": false,
            "Name": "",
            "Driver": "",
            "Type": "bind",
            "Relabel": "ro",
            "Propagation": "rprivate",
            "Spec": {
                "Type": "bind",
                "Source": "/etc/localtime",
                "Target": "/etc/localtime",
                "ReadOnly": true
            },
            "SkipMountpointCreation": false
        },
        "/gitbucket": {
            "Source": "/mnt/user/appdata/gitbucket",
            "Destination": "/gitbucket",
            "RW": true,
            "Name": "",
            "Driver": "",
            "Type": "bind",
            "Propagation": "rprivate",
            "Spec": {
                "Type": "bind",
                "Source": "/mnt/user/appdata/gitbucket",
                "Target": "/gitbucket"
            },
            "SkipMountpointCreation": false
        }
    },
    "SecretReferences": null,
    "ConfigReferences": null,
    "AppArmorProfile": "docker-default",
    "HostnamePath": "/var/lib/docker/containers/0e5d059f2d0a2f8a90cee0c105b9ee48ec9f1ec1b205ddcf0bb33996aea20bc0/hostname",
    "HostsPath": "/var/lib/docker/containers/0e5d059f2d0a2f8a90cee0c105b9ee48ec9f1ec1b205ddcf0bb33996aea20bc0/hosts",
    "ShmPath": "",
    "ResolvConfPath": "/var/lib/docker/containers/0e5d059f2d0a2f8a90cee0c105b9ee48ec9f1ec1b205ddcf0bb33996aea20bc0/resolv.conf",
    "SeccompProfile": "",
    "NoNewPrivileges": false,
    "LocalLogCacheMeta": {
        "HaveNotifyEnabled": false
    }
}