Moby: λ“œλΌμ΄λ²„ devicemapperκ°€ 루트 파일 μ‹œμŠ€ν…œμ„ μ œκ±°ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. κΈ°κΈ°κ°€ μ‚¬μš© μ€‘μž…λ‹ˆλ‹€.

에 λ§Œλ“  2016λ…„ 10μ›” 14일  Β·  153μ½”λ©˜νŠΈ  Β·  좜처: moby/moby

μ„€λͺ…
μ»¨ν…Œμ΄λ„ˆλ₯Ό μ œκ±°ν•  수 μ—†μŠ΅λ‹ˆλ‹€. dockerλŠ” Driver devicemapper failed to remove root filesystem. Device is busy ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ μ»¨ν…Œμ΄λ„ˆκ°€ Dead μƒνƒœκ°€ λ©λ‹ˆλ‹€.

문제λ₯Ό μž¬ν˜„ν•˜λŠ” 단계:

  1. docker rm container_id

받은 κ²°κ³Όλ₯Ό μ„€λͺ…ν•˜μ‹­μ‹œμ˜€.
였λ₯˜ λ©”μ‹œμ§€κ°€ ν‘œμ‹œλ¨: Error response from daemon: Driver devicemapper failed to remove root filesystem ce2ea989895b7e073b9c3103a7312f32e70b5ad01d808b42f16655ffcb06c535: Device is Busy

μ˜ˆμƒν•œ κ²°κ³Όλ₯Ό μ„€λͺ…ν•˜μ„Έμš”.
μ»¨ν…Œμ΄λ„ˆλ₯Ό μ œκ±°ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μ€‘μš”ν•˜λ‹€κ³  μƒκ°ν•˜λŠ” μΆ”κ°€ 정보(예: λ¬Έμ œκ°€ 가끔 λ°œμƒν•¨):
이것은 1.11.2μ—μ„œ 1.12.2둜 μ—…κ·Έλ ˆμ΄λ“œν•œ ν›„ λ°œμƒν•˜κΈ° μ‹œμž‘ν–ˆμœΌλ©° 가끔 λ°œμƒν•©λ‹ˆλ‹€(제거의 10%).

docker version 좜λ ₯:

Client:
 Version:      1.12.2
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   bb80604
 Built:
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.2
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   bb80604
 Built:
 OS/Arch:      linux/amd64

docker info 좜λ ₯:

Containers: 83
 Running: 72
 Paused: 0
 Stopped: 11
Images: 49
Server Version: 1.12.2
Storage Driver: devicemapper
 Pool Name: data-docker_thin
 Pool Blocksize: 65.54 kB
 Base Device Size: 107.4 GB
 Backing Filesystem: ext4
 Data file:
 Metadata file:
 Data Space Used: 33.66 GB
 Data Space Total: 86.72 GB
 Data Space Available: 53.06 GB
 Metadata Space Used: 37.3 MB
 Metadata Space Total: 268.4 MB
 Metadata Space Available: 231.1 MB
 Thin Pool Minimum Free Space: 8.672 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Library Version: 1.02.107-RHEL7 (2016-06-09)
Logging Driver: journald
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge null overlay host
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.10.0-327.10.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.305 GiB
Name: us-2.c.evennode-1234.internal
ID: HVU4:BVZ3:QYUQ:IJ6F:Q2FP:Z4T3:MBKH:I4KC:XFIF:W5DV:4HZW:45NJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Insecure Registries:
 127.0.0.0/8

μΆ”κ°€ ν™˜κ²½ μ„ΈλΆ€ 정보(AWS, VirtualBox, 물리적 λ“±):
AWS, gcloud, 물리적 λ“± μ„œλ²„λ₯Ό μ‹€ν–‰ν•˜λŠ” λͺ¨λ“  ν™˜κ²½

arestoragdevicemapper statuneeds-attention versio1.12

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ‹€μŒμ—μ„œ λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

  • docker: Docker 버전 17.03.1-ce, λΉŒλ“œ c6d412e
  • os: Red Hat Enterprise Linux Server 릴리슀 7.3(Maipo)
  • 컀널: 3.10.0-514.6.1.el7.x86_64
  • ntpd: 4.2.6p5

systemctl restart ntpd μˆ˜ν–‰ν•˜λ©΄ λ¬Έμ œκ°€ μ¦‰μ‹œ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  153 λŒ“κΈ€

이것은 λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆμ—μ„œ λ°œμƒν•©λ‹ˆκΉŒ? μ»¨ν…Œμ΄λ„ˆμ—μ„œ μ‹€ν–‰ 쀑인 것은 무엇이며 μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹œμž‘ν•˜κΈ° μœ„ν•΄ μ–΄λ–€ μ˜΅μ…˜μ„ μ‚¬μš©ν•©λ‹ˆκΉŒ? (예: λ°”μΈλ“œ 마운트된 디렉토리λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ? docker exec λ₯Ό μ‚¬μš©ν•˜μ—¬ μ»¨ν…Œμ΄λ„ˆμ—μ„œ μΆ”κ°€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹œμž‘ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?)

μš°λ¦¬λŠ” 거의 λ™μΌν•œ λ°©μ‹μœΌλ‘œ λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•˜κ³  κ·Έ 쀑 ν•˜λ‚˜μ—μ„œ λ¬΄μž‘μœ„λ‘œ λ°œμƒν•©λ‹ˆλ‹€.
μš°λ¦¬λŠ” docker exec λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  μ–΄λ–€ 디렉토리도 bind-mountν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€.
λ‹€μŒμ€ 죽은 μ»¨ν…Œμ΄λ„ˆ 쀑 ν•˜λ‚˜μ˜ κ΅¬μ„±μž…λ‹ˆλ‹€.

[
    {
        "Id": "ce2ea989895b7e073b9c3103a7312f32e70b5ad01d808b42f16655ffcb06c535",
        "Created": "2016-10-13T09:14:52.069916456Z",
        "Path": "/run.sh",
        "Args": [],
        "State": {
            "Status": "dead",
            "Running": false,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": true,
            "Pid": 0,
            "ExitCode": 143,
            "Error": "",
            "StartedAt": "2016-10-13T18:05:50.839079884Z",
            "FinishedAt": "2016-10-14T01:49:22.133922284Z"
        },
        "Image": "sha256:df8....4f4",
        "ResolvConfPath": "/var/lib/docker/containers/ce2ea989895b7e073b9c3103a7312f32e70b5ad01d808b42f16655ffcb06c535/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/ce2ea989895b7e073b9c3103a7312f32e70b5ad01d808b42f16655ffcb06c535/hostname",
        "HostsPath": "/var/lib/docker/containers/ce2ea989895b7e073b9c3103a7312f32e70b5ad01d808b42f16655ffcb06c535/hosts",
        "LogPath": "",
        "Name": "/d9a....43",
        "RestartCount": 0,
        "Driver": "devicemapper",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": [],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "fluentd",
                "Config": {
                    "fluentd-address": "127.0.0.1:24224",
                    "fluentd-async-connect": "true",
                    "labels": "app_id",
                    "tag": "docker.{{if (.ExtraAttributes nil).app_id}}{{(.ExtraAttributes nil).app_id}}{{else}}{{.Name}}{{end}}"
                }
            },
            "NetworkMode": "default",
            "PortBindings": {
                "3000/tcp": [
                    {
                        "HostIp": "127.0.0.2",
                        "HostPort": ""
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "always",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": [
                "mongodb:10.240.0.2"
            ],
            "GroupAdd": null,
            "IpcMode": "",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "CgroupParent": "mygroup/d9...43",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": null,
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": -1,
            "OomKillDisable": false,
            "PidsLimit": 0,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0
        },
        "GraphDriver": {
            "Name": "devicemapper",
            "Data": {
                "DeviceId": "29459",
                "DeviceName": "docker-8:1-34634049-8e884a263c75cfb042ac02136461c8e8258cf693f0e4992991d5803e951b3dbb",
                "DeviceSize": "107374182400"
            }
        },
        "Mounts": [],
        "Config": {
            "Hostname": "ce2ea989895b",
            "Domainname": "",
            "User": "app",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "3000/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PORT=3000",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/run.sh"
            ],
            "Image": "eu.gcr.io/reg/d9...43:latest",
            "Volumes": null,
            "WorkingDir": "/data/app",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "app_id": "d9...43"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "65632062399b8f9f011fdebcd044432c45f068b74d24c48818912a21e8036c98",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": null,
            "SandboxKey": "/var/run/docker/netns/65632062399b",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "59d8aa11b92aaa8ad9da7f010e8689c158cad7d80ec4b9e4e4688778c49149e0",
                    "EndpointID": "",
                    "Gateway": "",
                    "IPAddress": "",
                    "IPPrefixLen": 0,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": ""
                }
            }
        }
    }
]

이 파일 μ‹œμŠ€ν…œμ΄ Backing Filesystem: ext4 μ„œλ²„μ—μ„œλ§Œ λ°œμƒν•˜λŠ” κ²ƒμœΌλ‘œ λ‚˜νƒ€λ‚¬μŠ΅λ‹ˆλ‹€.
xfs λ₯Ό λ°±μ—… 파일 μ‹œμŠ€ν…œμœΌλ‘œ μ‹€ν–‰ν•˜λŠ” μ„œλ²„μ—μ„œλŠ” λ¬Έμ œκ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

@ceecko κ°μ‚¬ν•©λ‹ˆλ‹€, ν₯λ―Έ

@rhvgoyal 이것은 κ·€ν•˜μ˜ μ•Œλ €μ§„ λ¬Έμ œμž…λ‹ˆκΉŒ?

이것은 ν”„λ‘œλ•μ…˜μ—μ„œ μš°λ¦¬μ—κ²Œ 큰 타격을 μ€λ‹ˆλ‹€./ 죽은 μ»¨ν…Œμ΄λ„ˆλ₯Ό μ œκ±°ν•˜λŠ” 방법에 λŒ€ν•œ νžŒνŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

@thaJeztah 이것이 xfsκ°€ μ•„λ‹Œ ext4μ—μ„œλ§Œ λ°œμƒν•œλ‹€λŠ”

일반적으둜 μ‚¬λžŒλ“€μ€ μž₯μΉ˜κ°€ μ‚¬μš© 쀑이라고 λ³΄κ³ ν–ˆμœΌλ©° κ·Έ μ΄μœ λŠ” 맀우 λ‹€μ–‘ν•©λ‹ˆλ‹€.

@ceeko λ¨Όμ € 도컀 데λͺ¬μ΄ 호슀트 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€κ°€ μ•„λ‹Œ 자체 슬레이브 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ μ‹€ν–‰λ˜κ³  μžˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. 마운트 지점이 μƒˆμ§€ μ•Šκ³  μ΄λŸ¬ν•œ 였λ₯˜κ°€ λ°œμƒν•  κ°€λŠ₯성이 μ€„μ–΄λ“­λ‹ˆλ‹€. μ‹œμŠ€ν…œ ꡬ동 도컀λ₯Ό μ‚¬μš©ν•˜λŠ” 경우 도컀 λ‹¨μœ„ 파일이 μžˆμ–΄μ•Ό ν•˜λ©° MountFlags=slaveκ°€ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

@rhvgoyal MountFlags=slave λŠ” μ§€κΈˆκΉŒμ§€ 문제λ₯Ό ν•΄κ²°ν•œ 것 κ°™μŠ΅λ‹ˆλ‹€. λ³€κ²½ 전에 μƒμ„±λœ μ»¨ν…Œμ΄λ„ˆλŠ” μ—¬μ „νžˆ λ¬Έμ œμ΄μ§€λ§Œ μƒˆ μ»¨ν…Œμ΄λ„ˆλŠ” μ§€κΈˆκΉŒμ§€ 였λ₯˜λ₯Ό μœ λ°œν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. λ³€κ²½ 사항이 있으면 연락 λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

Btw μ°Έμ‘°λ₯Ό 찾을 수 μ—†κΈ° λ•Œλ¬Έμ— ν”„λ‘œλ•μ…˜μ—μ„œ λͺ¨λ²” μ‚¬λ‘€λ‘œ ꢌμž₯ν•˜κΈ° μœ„ν•΄ μ €μž₯μ†Œ λ“œλΌμ΄λ²„ λ¬Έμ„œλ₯Ό μ—…λ°μ΄νŠΈν•  κ°€μΉ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.

λ„μ™€μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

이것은 μ–Όλ§ˆ 전에 λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€. https://github.com/docker/docker/commit/2aee081cad72352f8b0c37ba0414ebc925b022e8#diff -ff907ce70a8c7e795bde1de91be6fa68(https://github.com/docker/228/pull) 토둠에 따라 λ¬Έμ œκ°€ 제거된 경우 ν™œμ„±ν™”λ˜μ§€ μ•ŠμŒ; https://github.com/docker/docker/pull/22806#issuecomment -220043409

기본값을 λ‹€μ‹œ λ³€κ²½ν•΄μ•Ό ν•©λ‹ˆκΉŒ? @rhvgoyal

@thaJeztah 기본값을 λ‹€μ‹œ MountFlags=slave둜 λ³€κ²½ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” κ·Έλ ‡κ²Œ ν–ˆμŠ΅λ‹ˆλ‹€.

μ΄μƒμ μœΌλ‘œ μ§€μ—°λœ 제거 및 μ§€μ—°λœ μ‚­μ œ κΈ°λŠ₯이 이λ₯Ό μ²˜λ¦¬ν•΄μ•Ό ν–ˆμœΌλ©° MountFlags=slaveλ₯Ό μ‚¬μš©ν•  ν•„μš”κ°€ μ—†μ—ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 지연 μ‚­μ œλ§ŒμœΌλ‘œλŠ” μΆ©λΆ„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 이전 μ»€λ„μ—λŠ” λ‹€λ₯Έ 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— 마운트된 κ²½μš°μ—λ„ 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ 디렉토리λ₯Ό μ œκ±°ν•  수 μžˆλŠ” κΈ°λŠ₯이 μ—†μŠ΅λ‹ˆλ‹€. 이것이 μ»¨ν…Œμ΄λ„ˆ μ œκ±°κ°€ μ‹€νŒ¨ν•  수 μžˆλŠ” ν•œ 가지 μ΄μœ μž…λ‹ˆλ‹€.

λ”°λΌμ„œ 였래된 컀널이 ν•΄λ‹Ή κΈ°λŠ₯을 μ œκ³΅ν•  λ•ŒκΉŒμ§€ 슬레이브 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ 도컀 데λͺ¬μ„ μ‹€ν–‰ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

@rhvgoyal MountFlags=slave μ—μ„œλ„ 였λ₯˜κ°€ λ‹€μ‹œ λ‚˜νƒ€λ‚˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. μ§€μ—°λœ 제거 및 μ‚­μ œλ₯Ό μ‹œλ„ν•˜κ³  λ‹€μ‹œ μ—°λ½λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

xfs μ—μ„œλ„ λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
λ‹€μŒμ€ 도컀 μ •λ³΄μž…λ‹ˆλ‹€.

Containers: 52
 Running: 52
 Paused: 0
 Stopped: 0
Images: 9
Server Version: 1.12.2
Storage Driver: devicemapper
 Pool Name: data-docker_thin
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file:
 Metadata file:
 Data Space Used: 13 GB
 Data Space Total: 107.1 GB
 Data Space Available: 94.07 GB
 Metadata Space Used: 19.19 MB
 Metadata Space Total: 268.4 MB
 Metadata Space Available: 249.2 MB
 Thin Pool Minimum Free Space: 10.71 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: true
 Deferred Deletion Enabled: true
 Deferred Deleted Device Count: 0
 Library Version: 1.02.107-RHEL7 (2016-06-09)
Logging Driver: journald
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host overlay bridge null
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.10.0-327.10.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.389 GiB
Name: ip-172-31-25-29.eu-west-1.compute.internal
ID: ZUTN:S7TL:6JRZ:HG52:LDLZ:VR5Q:RWVV:IP7E:HOQ4:R55X:Z7AI:P63R
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Insecure Registries:
 127.0.0.0/8

MountFlags=slave 와 dm.use_deferred_deletion=true 와 dm.use_deferred_removal=true μ‚¬μš©ν•΄λ„ 1.12.2 μ—μ„œ 이전보닀 덜 자주 λ°œμƒν•˜μ§€λ§Œ μ—¬μ „νžˆ 였λ₯˜κ°€ λ°œμƒν•¨μ„ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒμ€ μ œκ±°ν•  수 μ—†λŠ” μ»¨ν…Œμ΄λ„ˆ 1κ°œμ— λŒ€ν•œ μΆ”κ°€ μ •λ³΄μž…λ‹ˆλ‹€.

libcontainerd: container 4d9bbd9b4da95f0ba1947055fa263a059ede9397bcf1456e6795f16e1a7f0543 restart canceled
error locating sandbox id c9272d4830ba45e03efda777a14a4b5f7f94138997952f2ec1ba1a43b2c4e1c5: sandbox c9272d4830ba45e03efda777a14a4b5f7f94138997952f2ec1ba1a43b2c4e1c5 not found
failed to cleanup ipc mounts:\nfailed to umount /var/lib/docker/containers/4d9bbd9b4da95f0ba1947055fa263a059ede9397bcf1456e6795f16e1a7f0543/shm: invalid argument
devmapper: Error unmounting device ed06c57080b8a8f25dc83d4afabaccb26d72009dad23a8e87310b873c226b905: invalid argument
Error unmounting container 4d9bbd9b4da95f0ba1947055fa263a059ede9397bcf1456e6795f16e1a7f0543: invalid argument
Handler for DELETE /containers/4d9bbd9b4da95f0ba1947055fa263a059ede9397bcf1456e6795f16e1a7f0543 returned error: Unable to remove filesystem for 4d9bbd9b4da95f0ba1947055fa263a059ede9397bcf1456e6795f16e1a7f0543: remove /var/lib/docker/containers/4d9bbd9b4da95f0ba1947055fa263a059ede9397bcf1456e6795f16e1a7f0543/shm: device or resource busy

λ‹€μŒ λ©”μ‹œμ§€λŠ” 디렉터리 μ œκ±°μ— μ‹€νŒ¨ν–ˆμŒμ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

remove /var/lib/docker/containers/4d9bbd9b4da95f0ba1947055fa263a059ede9397bcf1456e6795f16e1a7f0543/shm: device or resource busy

그리고 이전 μ»€λ„μ—μ„œλŠ” 디렉토리가 λ‹€λ₯Έ 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— λ§ˆμš΄νŠΈλ˜μ–΄ 있기 λ•Œλ¬Έμ— μ‹€νŒ¨ν•  수 μžˆμŠ΅λ‹ˆλ‹€. deferred deletion κΈ°λŠ₯을 λΉ„ν™œμ„±ν™”ν•˜λ©΄ 이 λ©”μ‹œμ§€κ°€ 더 이상 ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 그것은 λ‹€λ₯Έ 였λ₯˜ λ©”μ‹œμ§€κ°€ 될 κ²ƒμž…λ‹ˆλ‹€.

μ—¬κΈ°μ„œ 문제의 핡심은 μ»¨ν…Œμ΄λ„ˆκ°€ μ—¬μ „νžˆ μ‹€ν–‰ μ€‘μ΄κ±°λ‚˜ 일뢀 νƒ‘μž¬ 지점이 λ‹€λ₯Έ 일뢀 νƒ‘μž¬ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ λˆ„μΆœλ˜μ—ˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. 그리고 그것이 λˆ„μΆœλœ 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€μ™€ 그것이 μ–΄λ–»κ²Œ 거기에 λ„λ‹¬ν–ˆλŠ”μ§€ μ•Œμ•„λ‚Ό 수 μžˆλ‹€λ©΄ μš°λ¦¬λŠ” 그것을 κ³ μΉ  수 μžˆμŠ΅λ‹ˆλ‹€.

이 λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ find /proc/*/mounts | xargs grep "4d9bbd9b4da95f0ba1947055fa263a059ede9397bcf1456e6795f16e1a7f0543" μ‹œλ„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

그런 λ‹€μŒ λˆ„μΆœλœ μ»¨ν…Œμ΄λ„ˆμ™€ κ΄€λ ¨λœ λ§ˆμš΄νŠΈκ°€ μžˆλŠ” pidλ₯Ό ν™•μΈν•©λ‹ˆλ‹€. 그리고 그것은 μ•½κ°„μ˜ 아이디어λ₯Ό 쀄 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” λͺ¨λ‘ 죽은 4개의 μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹œλ„ν–ˆκ³  μž₯μΉ˜κ°€ μ‚¬μš© 쀑이고 아무것도 얻지 λͺ»ν•΄ μ œκ±°ν•  수 μ—†μŠ΅λ‹ˆλ‹€./

# find /proc/*/mounts | xargs grep -E "b3070ef60def|62777ad2994f|923a6d20506d|f3e079a9721c"
grep: /proc/9659/mounts: No such file or directory

이제 μ‹€μ œλ‘œ μ•½κ°„ λ‹€λ₯Έ 였λ₯˜ λ©”μ‹œμ§€κ°€ λ‚˜νƒ€λ‚©λ‹ˆλ‹€.

# docker rm b3070ef60def
Error response from daemon: Driver devicemapper failed to remove root filesystem b3070ef60deffc0e496631ed6e058c4569d6233bb6947b27072a70c663d9e579: remove /var/lib/docker/devicemapper/mnt/527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd: device or resource busy

같은 것. 이 λ””λ ‰ν† λ¦¬λŠ” λ‹€λ₯Έ 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— λ§ˆμš΄νŠΈλ˜μ–΄ μžˆμœΌλ―€λ‘œ μ‚­μ œν•  수 μ—†μŠ΅λ‹ˆλ‹€. /proc/μ—μ„œ 검색해 λ³΄μ„Έμš”.이 id 527ae5 λŒ€ν•΄ /mounts 및 grep을 μˆ˜ν–‰ν•˜κ³  이 마운트 지점을 보고 μžˆλŠ” pidλ₯Ό ν™•μΈν•©λ‹ˆλ‹€. μ„€μ •μ—μ„œ μ»¨ν…Œμ΄λ„ˆ rootfs 마운트 ν¬μΈνŠΈκ°€ λ‹€λ₯Έ 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ λˆ„μΆœλ˜λŠ” 이유λ₯Ό νŒŒμ•…ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μ—¬κΈ° μš°λ¦¬κ°€ κ°„λ‹€:

# find /proc/*/mounts | xargs grep -E "527ae5"
grep: /proc/10080/mounts: No such file or directory
/proc/15890/mounts:/dev/mapper/docker-253:1-1050933-527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd /var/lib/docker/devicemapper/mnt/527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd xfs rw,seclabel,relatime,nouuid,attr2,inode64,logbsize=64k,sunit=128,swidth=128,noquota 0 0
/proc/23584/mounts:/dev/mapper/docker-253:1-1050933-527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd /var/lib/docker/devicemapper/mnt/527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd xfs rw,seclabel,relatime,nouuid,attr2,inode64,logbsize=64k,sunit=128,swidth=128,noquota 0 0
/proc/31591/mounts:/dev/mapper/docker-253:1-1050933-527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd /var/lib/docker/devicemapper/mnt/527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd xfs rw,seclabel,relatime,nouuid,attr2,inode64,logbsize=64k,sunit=128,swidth=128,noquota 0 0
/proc/4194/mounts:/dev/mapper/docker-253:1-1050933-527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd /var/lib/docker/devicemapper/mnt/527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd xfs rw,seclabel,relatime,nouuid,attr2,inode64,logbsize=64k,sunit=128,swidth=128,noquota 0 0
/proc/4700/mounts:/dev/mapper/docker-253:1-1050933-527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd /var/lib/docker/devicemapper/mnt/527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd xfs rw,seclabel,relatime,nouuid,attr2,inode64,logbsize=64k,sunit=128,swidth=128,noquota 0 0
/proc/4701/mounts:/dev/mapper/docker-253:1-1050933-527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd /var/lib/docker/devicemapper/mnt/527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd xfs rw,seclabel,relatime,nouuid,attr2,inode64,logbsize=64k,sunit=128,swidth=128,noquota 0 0
/proc/8858/mounts:/dev/mapper/docker-253:1-1050933-527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd /var/lib/docker/devicemapper/mnt/527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd xfs rw,seclabel,relatime,nouuid,attr2,inode64,logbsize=64k,sunit=128,swidth=128,noquota 0 0
/proc/8859/mounts:/dev/mapper/docker-253:1-1050933-527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd /var/lib/docker/devicemapper/mnt/527ae5985b1b730a05a667d147ce15abcbfb950a334aea4b673a413b6b21c4dd xfs rw,seclabel,relatime,nouuid,attr2,inode64,logbsize=64k,sunit=128,swidth=128,noquota 0 0
nginx     4194  0.0  0.0  55592 10520 ?        S    11:55   0:06 nginx: worker process is shutting down
nginx     4700  2.3  0.0  55804 10792 ?        S    11:58   3:52 nginx: worker process is shutting down
nginx     4701  1.8  0.0  55800 10784 ?        S    11:58   3:04 nginx: worker process is shutting down
nginx     8858  2.4  0.0  55560 10720 ?        S    14:05   0:59 nginx: worker process
nginx     8859  3.1  0.0  55560 10700 ?        S    14:05   1:15 nginx: worker process
root     15890  0.0  0.0  55004  9524 ?        Ss   Oct29   0:05 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx    23584  0.0  0.0  55576 10452 ?        S    09:17   0:00 nginx: worker process is shutting down
nginx    31591  0.9  0.0  63448 18820 ?        S    09:46   2:53 nginx: worker process is shutting down

이 pidκ°€ λ§€ν•‘λ˜λŠ” ν”„λ‘œμ„ΈμŠ€λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ? cat /proc/<pid>/comm λ˜λŠ” ps -eaf | grep <pid> μ‹œλ„

이듀은 λͺ¨λ‘ ꡬ성을 λ‹€μ‹œ λ‘œλ“œν•œ ν›„ μ’…λ£Œλ˜λŠ” nginx μž‘μ—…μž ν”„λ‘œμ„ΈμŠ€μž…λ‹ˆλ‹€(μœ„μ˜ νŽΈμ§‘λœ 주석 μ°Έμ‘°). μ»¨ν…Œμ΄λ„ˆκ°€ λ³Όλ₯¨μ„ λ°”μΈλ”©ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 마운트λ₯Ό μ°¨λ‹¨ν•˜λŠ” μ΄μœ κ°€ κΆκΈˆν•©λ‹ˆλ‹€.

κ·Έλž˜μ„œ nginx ν”„λ‘œμ„ΈμŠ€κ°€ λ‹€λ₯Έ μ»¨ν…Œμ΄λ„ˆμ—μ„œ μ‹€ν–‰λ˜κ³  μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ ν˜ΈμŠ€νŠΈμ—μ„œ μ‹€ν–‰ μ€‘μž…λ‹ˆκΉŒ?

λ‹€μŒμ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • ls -l /proc/<docker-daemon-pid>/ns/mnt
  • ls -l /proc/<nginx-pid>/ns/mnt
  • ν˜ΈμŠ€νŠΈμ—μ„œ bash 셸을 μ‹€ν–‰ν•˜κ³  ls -l /proc/$$/ns/mnt

그리고 좜λ ₯을 λΆ™μ—¬λ„£μŠ΅λ‹ˆλ‹€. μ—¬κΈ°.

nginxλŠ” ν˜ΈμŠ€νŠΈμ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€.

docker-pid

# ls -l /proc/13665/ns/mnt
lrwxrwxrwx. 1 root root 0 Oct 31 15:01 /proc/13665/ns/mnt -> mnt:[4026531840]

nginx-pid

# ls -l /proc/15890/ns/mnt
lrwxrwxrwx. 1 root root 0 Oct 31 15:01 /proc/15890/ns/mnt -> mnt:[4026533289]
ls -l /proc/$$/ns/mnt
lrwxrwxrwx. 1 root root 0 Oct 31 15:02 /proc/10063/ns/mnt -> mnt:[4026531840]

docker-pid와 host λ‘˜ λ‹€ λ™μΌν•œ 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό κ³΅μœ ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μ΄λŠ” 도컀 데λͺ¬μ΄ 호슀트 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ μ‹€ν–‰λ˜κ³  μžˆμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€. 그리고 그것은 μ•„λ§ˆλ„ nginxκ°€ μ»¨ν…Œμ΄λ„ˆ μ‹œμž‘ ν›„ μ–΄λŠ μ‹œμ μ—μ„œ μ‹œμž‘λ˜μ—ˆκ³  자체 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ μ‹€ν–‰λ˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μΈλ‹€λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. 그리고 κ·Έ λ‹Ήμ‹œ 마운트 ν¬μΈνŠΈκ°€ nginx 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ λˆ„μΆœλ˜μ–΄ μ»¨ν…Œμ΄λ„ˆ μ‚­μ œλ₯Ό λ°©μ§€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

MountFlags=slaveκ°€ μž‘λ™ν•˜λŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€. μž‘λ™ν•˜λ©΄ /proc//ns/mntλŠ” 호슀트 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ μ‹€ν–‰λ˜λŠ” docker 데λͺ¬κ³Ό bash 셸에 λŒ€ν•΄ λ‹€λ₯Έ 좜λ ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

λ„€κ°€ μ˜³μ•„. 이 ν˜ΈμŠ€νŠΈλŠ” 아직 MountFlags=slave μ„€μ •λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.
λ‹€λ₯Έ ν˜ΈμŠ€νŠΈκ°€ κ·Έλž¬μ§€λ§Œ μ—¬μ „νžˆ 죽은 μ»¨ν…Œμ΄λ„ˆκ°€ μžˆμŠ΅λ‹ˆλ‹€. μ§€κΈˆμ€ μˆ˜λ™μœΌλ‘œ λͺ¨λ‘ μ œκ±°ν–ˆμ§€λ§Œ MountFlags=slave 둜 μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

상황이 반볡될 λ•ŒκΉŒμ§€ κΈ°λ‹€λ Έλ‹€κ°€ 여기에 μ—…λ°μ΄νŠΈλ₯Ό κ²Œμ‹œν•˜κ² μŠ΅λ‹ˆλ‹€. 감사 ν•΄μš”.

이제 상황은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. MountFlags=slave 및 μ§€μ—°λœ 제거 및 μ‚­μ œλ₯Ό μ‚¬μš©ν•˜κ³  λ•Œλ•Œλ‘œ 원격 APIμ—μ„œ μž₯μΉ˜κ°€ μ‚¬μš© μ€‘μ΄μ–΄μ„œ μ œκ±°ν•  수 μ—†λ‹€λŠ” 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 였λ₯˜ 직후에 docker rm container λ₯Ό ν˜ΈμΆœν•˜λ©΄ μ»¨ν…Œμ΄λ„ˆκ°€ 잘 μ œκ±°λ©λ‹ˆλ‹€.

λ¬Έμ œκ°€ λ‹€μ‹œ λ‚˜νƒ€λ‚¬μŠ΅λ‹ˆλ‹€.

λ„μ»€λ“œ

# ll /proc/16441/ns/mnt
lrwxrwxrwx. 1 root root 0 Nov  4 23:05 /proc/16441/ns/mnt -> mnt:[4026534781]

nginx

# ll /proc/15890/ns/mnt
lrwxrwxrwx. 1 root root 0 Oct 31 15:01 /proc/15890/ns/mnt -> mnt:[4026533289]
# ll /proc/$$/ns/mnt
lrwxrwxrwx. 1 root root 0 Nov  4 23:06 /proc/22029/ns/mnt -> mnt:[4026531840]
# find /proc/*/mounts | xargs grep -E "a2388cf8d19a"
/proc/11528/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/12918/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/1335/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/14853/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/1821/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/22241/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/22406/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/22618/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
grep: /proc/22768/mounts: No such file or directory
/proc/22771/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/23601/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/24108/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/24405/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/24614/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/24817/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/25116/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/25277/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/25549/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/25779/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/26036/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/26211/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/26369/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/26638/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/26926/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/27142/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/27301/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/27438/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/27622/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/27770/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/27929/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/28146/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/28309/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/28446/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/28634/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/28805/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/28961/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/29097/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/2909/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/29260/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/29399/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/29540/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/29653/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/29675/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/29831/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/30040/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/30156/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/30326/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/30500/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/30619/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/30772/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/30916/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/31077/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/31252/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/31515/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/31839/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/32036/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/32137/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/3470/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/5628/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/5835/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0
/proc/8076/mounts:shm /var/lib/docker/containers/a2388cf8d19a431f47e9df533a853809ceaf819581c23c438fefe470d2bf8f03/shm tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=65536k 0 0

이전 λͺ…λ Ήμ˜ ν”„λ‘œμ„ΈμŠ€

  PID TTY      STAT   TIME COMMAND
 1335 ?        Sl     0:00 docker-containerd-shim 9a678ecbd9334230d61a0e305cbbb50e3e5207e283decc2d570d787d98f8d930 /var/run/docker/libcontainerd/9a678ecbd9334230d61a0e305cbbb50e3e5207e283decc2d570d787d98f8d930 docker-runc
 1821 ?        Sl     0:00 docker-containerd-shim 97f0a040c0ebe15d7527a54481d8946e87f1ec0681466108fd8356789de0232b /var/run/docker/libcontainerd/97f0a040c0ebe15d7527a54481d8946e87f1ec0681466108fd8356789de0232b docker-runc
 2909 ?        Sl     0:00 docker-containerd-shim ef2e6a22e5ea5f221409ff8888ac976bd9b23633fab13b6968253104424a781f /var/run/docker/libcontainerd/ef2e6a22e5ea5f221409ff8888ac976bd9b23633fab13b6968253104424a781f docker-runc
 3470 ?        Sl     0:00 docker-containerd-shim 24b6918ce273a82100a1c6bae711554340bc60ff965527456130bd2fabf0ca6f /var/run/docker/libcontainerd/24b6918ce273a82100a1c6bae711554340bc60ff965527456130bd2fabf0ca6f docker-runc
 5628 ?        Sl     0:00 docker-containerd-shim 9561cbe2f0133119e2749d09e5db3f6473e77830a7981c1171849fe403d73973 /var/run/docker/libcontainerd/9561cbe2f0133119e2749d09e5db3f6473e77830a7981c1171849fe403d73973 docker-runc
 5835 ?        Sl     0:00 docker-containerd-shim a5afb5ab32c2396cdddd24390f94b01f597850012ad9731d6d47db9708567b24 /var/run/docker/libcontainerd/a5afb5ab32c2396cdddd24390f94b01f597850012ad9731d6d47db9708567b24 docker-runc
 8076 ?        Sl     0:00 docker-containerd-shim 20cca8e6ec26364aa4eb9733172c7168052947d5e204d302034b2d14fd659302 /var/run/docker/libcontainerd/20cca8e6ec26364aa4eb9733172c7168052947d5e204d302034b2d14fd659302 docker-runc
11528 ?        Sl     0:00 docker-containerd-shim f7584de190086d41da71235a6ce2516cbccb8ac0fff9f71b03d405af9478660f /var/run/docker/libcontainerd/f7584de190086d41da71235a6ce2516cbccb8ac0fff9f71b03d405af9478660f docker-runc
12918 ?        Sl     0:00 docker-containerd-shim 9ada39a06c5e1351df30dde993adcd048f8bd7984af2b412b8f3339f037c8847 /var/run/docker/libcontainerd/9ada39a06c5e1351df30dde993adcd048f8bd7984af2b412b8f3339f037c8847 docker-runc
14853 ?        Sl     0:00 docker-containerd-shim 4d05a794e0be9e710b804f5a7df22e2dd268083b3d7d957daae6f017c1c8fb67 /var/run/docker/libcontainerd/4d05a794e0be9e710b804f5a7df22e2dd268083b3d7d957daae6f017c1c8fb67 docker-runc
22241 ?        Sl     0:00 docker-containerd-shim ce81b6b51fcbf1163491381c790fc944b54adf3333f82d75281bc746b81ccd47 /var/run/docker/libcontainerd/ce81b6b51fcbf1163491381c790fc944b54adf3333f82d75281bc746b81ccd47 docker-runc
22406 ?        Sl     0:00 docker-containerd-shim 519e5531104278559d95f351e2212b04b06f44cbd1e05336cd306b9a958c8874 /var/run/docker/libcontainerd/519e5531104278559d95f351e2212b04b06f44cbd1e05336cd306b9a958c8874 docker-runc
22618 ?        Sl     0:00 docker-containerd-shim 869b356e7838ef3c0200864c58a89a22c812574a60da535eb2107a5da1d07a65 /var/run/docker/libcontainerd/869b356e7838ef3c0200864c58a89a22c812574a60da535eb2107a5da1d07a65 docker-runc
22771 ?        Sl     0:00 docker-containerd-shim 63f0816e72d4be4ed79fe2c31794876b1b3ab7a300ca69497a8bddbd8cf8953f /var/run/docker/libcontainerd/63f0816e72d4be4ed79fe2c31794876b1b3ab7a300ca69497a8bddbd8cf8953f docker-runc
23601 ?        Sl     0:00 docker-containerd-shim 9943b9930cb4803666caf5499dfb0753c36193efe0285f2ae697be63c6122003 /var/run/docker/libcontainerd/9943b9930cb4803666caf5499dfb0753c36193efe0285f2ae697be63c6122003 docker-runc
24108 ?        Sl     0:00 docker-containerd-shim 21af7db24bbd1679f48ae3cf0d022535c208c63dc42a274dd54e3cfcb90b9737 /var/run/docker/libcontainerd/21af7db24bbd1679f48ae3cf0d022535c208c63dc42a274dd54e3cfcb90b9737 docker-runc
24405 ?        Sl     0:00 docker-containerd-shim 0dccc5141be2367de2601d83020f7f4c27762d4c8e986b4b100a4bce12fc2f5a /var/run/docker/libcontainerd/0dccc5141be2367de2601d83020f7f4c27762d4c8e986b4b100a4bce12fc2f5a docker-runc
24614 ?        Sl     0:00 docker-containerd-shim e1023b528f8b2a1889c0fc360c0d1738a15be0bd53e0722920a9abb5ecc2c538 /var/run/docker/libcontainerd/e1023b528f8b2a1889c0fc360c0d1738a15be0bd53e0722920a9abb5ecc2c538 docker-runc
24817 ?        Sl     0:00 docker-containerd-shim 2106fe528147306e768b01b03ef7f10c53536ad4aaee6a628608c9c5bbf9494c /var/run/docker/libcontainerd/2106fe528147306e768b01b03ef7f10c53536ad4aaee6a628608c9c5bbf9494c docker-runc
25116 ?        Sl     0:00 docker-containerd-shim 1b9623bf34b5030d47faf21dee6462478d6d346327af0b4c96e6ccae4c880368 /var/run/docker/libcontainerd/1b9623bf34b5030d47faf21dee6462478d6d346327af0b4c96e6ccae4c880368 docker-runc
25277 ?        Sl     0:00 docker-containerd-shim 6662486b063f530a446602eed47811443eb737151b404c0d253bf54df9e6b93f /var/run/docker/libcontainerd/6662486b063f530a446602eed47811443eb737151b404c0d253bf54df9e6b93f docker-runc
25549 ?        Sl     0:05 docker-containerd-shim f6e3e14362455f38d6abfdeb106f280151ee3f12dc9d2808c774dd3d2cd3e828 /var/run/docker/libcontainerd/f6e3e14362455f38d6abfdeb106f280151ee3f12dc9d2808c774dd3d2cd3e828 docker-runc
25779 ?        Sl     0:00 docker-containerd-shim 144fded452cd9a0bdbcdf72890aa400eadb65e434038373e2ddfc1f4e28a1279 /var/run/docker/libcontainerd/144fded452cd9a0bdbcdf72890aa400eadb65e434038373e2ddfc1f4e28a1279 docker-runc
26036 ?        Sl     0:00 docker-containerd-shim e076f6cfc4fcd04a9a4fa6aecf37fe244d6d84e200380b6ef4a1e0a79575e952 /var/run/docker/libcontainerd/e076f6cfc4fcd04a9a4fa6aecf37fe244d6d84e200380b6ef4a1e0a79575e952 docker-runc
26211 ?        Sl     0:00 docker-containerd-shim 65bea267b22c9a6efe58ea9d7339986b01e7f67c095aa1451768de5114a5b027 /var/run/docker/libcontainerd/65bea267b22c9a6efe58ea9d7339986b01e7f67c095aa1451768de5114a5b027 docker-runc
26369 ?        Sl     0:00 docker-containerd-shim 390bc07f95b460220bda115aad2f247b33f50c81f7bd2b3d1a20e1696b95511b /var/run/docker/libcontainerd/390bc07f95b460220bda115aad2f247b33f50c81f7bd2b3d1a20e1696b95511b docker-runc
26638 ?        Sl     0:00 docker-containerd-shim b6d86f96d33260673b2e072419f08578716582578015a30e4f23d4e481a55809 /var/run/docker/libcontainerd/b6d86f96d33260673b2e072419f08578716582578015a30e4f23d4e481a55809 docker-runc
26926 ?        Sl     0:00 docker-containerd-shim 337ec28dd75f2f5bc2cfa813504d35a8c148777c7f246f8af5d792c36f3453ae /var/run/docker/libcontainerd/337ec28dd75f2f5bc2cfa813504d35a8c148777c7f246f8af5d792c36f3453ae docker-runc
27142 ?        Sl     0:00 docker-containerd-shim ba2216d6b46d7b57493734b093bc153823fb80a48ef4b91d0d1c660ee9adc519 /var/run/docker/libcontainerd/ba2216d6b46d7b57493734b093bc153823fb80a48ef4b91d0d1c660ee9adc519 docker-runc
27301 ?        Sl     0:00 docker-containerd-shim 520f66841a97b2545784b29ea3bc7a22a58d97987c404e1d99314da75307d279 /var/run/docker/libcontainerd/520f66841a97b2545784b29ea3bc7a22a58d97987c404e1d99314da75307d279 docker-runc
27438 ?        Sl     0:00 docker-containerd-shim 0908466da160ed739d74d675e1a6e04d85da0caa2216c739c0e218e75219dc3e /var/run/docker/libcontainerd/0908466da160ed739d74d675e1a6e04d85da0caa2216c739c0e218e75219dc3e docker-runc
27622 ?        Sl     0:00 docker-containerd-shim e627ef7439b405376ac4cf58702241406e3c8b9fbe76694a9593c6f96b4e5925 /var/run/docker/libcontainerd/e627ef7439b405376ac4cf58702241406e3c8b9fbe76694a9593c6f96b4e5925 docker-runc
27770 ?        Sl     0:00 docker-containerd-shim 0b6275f8f1d8277ac39c723825e7b830e0cf852c44696074a279227402753827 /var/run/docker/libcontainerd/0b6275f8f1d8277ac39c723825e7b830e0cf852c44696074a279227402753827 docker-runc
27929 ?        Sl     0:00 docker-containerd-shim fcf647fbe0fe024cc4c352a2395d8d315d647aeda7f75a2f9d42826eca3dee58 /var/run/docker/libcontainerd/fcf647fbe0fe024cc4c352a2395d8d315d647aeda7f75a2f9d42826eca3dee58 docker-runc
28146 ?        Sl     0:00 docker-containerd-shim 19f020044a3e600aa554a7ab00264155206e8791a7002f5616b397745b2c6405 /var/run/docker/libcontainerd/19f020044a3e600aa554a7ab00264155206e8791a7002f5616b397745b2c6405 docker-runc
28309 ?        Sl     0:00 docker-containerd-shim 3f6a5b9136df8169d3d1e1eb104bda6f4baf32ca5a2bc35ddaeea4a3a0bf774a /var/run/docker/libcontainerd/3f6a5b9136df8169d3d1e1eb104bda6f4baf32ca5a2bc35ddaeea4a3a0bf774a docker-runc
28446 ?        Sl     0:00 docker-containerd-shim f1ede5511531d05ab9eb86612ed239446a4b3acefe273ee65474b4a4c1d462e2 /var/run/docker/libcontainerd/f1ede5511531d05ab9eb86612ed239446a4b3acefe273ee65474b4a4c1d462e2 docker-runc
28634 ?        Sl     0:00 docker-containerd-shim 7485d577ec2e707e1151a73132ceba7db5c0509c1ffbaf750515e0228b2ffa33 /var/run/docker/libcontainerd/7485d577ec2e707e1151a73132ceba7db5c0509c1ffbaf750515e0228b2ffa33 docker-runc
28805 ?        Sl     0:00 docker-containerd-shim e5afd9eccb217e16f0494f71504d167ace8377498ce6141e2eaf96de71c74233 /var/run/docker/libcontainerd/e5afd9eccb217e16f0494f71504d167ace8377498ce6141e2eaf96de71c74233 docker-runc
28961 ?        Sl     0:00 docker-containerd-shim bd62214b90fab46a92893a15e06d5e2744659d61d422776ce9b395e56bb0e774 /var/run/docker/libcontainerd/bd62214b90fab46a92893a15e06d5e2744659d61d422776ce9b395e56bb0e774 docker-runc
29097 ?        Sl     0:00 docker-containerd-shim 81db13c46756851006d2f0b0393e37590bac228a3d958a12cc9f6c86d5992253 /var/run/docker/libcontainerd/81db13c46756851006d2f0b0393e37590bac228a3d958a12cc9f6c86d5992253 docker-runc
29260 ?        Sl     0:00 docker-containerd-shim 188d2c3a98cc1d65a88daeb17dacca7fca978831a9292b7225e60f7443096114 /var/run/docker/libcontainerd/188d2c3a98cc1d65a88daeb17dacca7fca978831a9292b7225e60f7443096114 docker-runc
29399 ?        Sl     0:00 docker-containerd-shim 1dc12f09be24722a18057072ac5a0b2b74324e13de051f213e1966c1d31e1348 /var/run/docker/libcontainerd/1dc12f09be24722a18057072ac5a0b2b74324e13de051f213e1966c1d31e1348 docker-runc
29540 ?        Sl     0:00 docker-containerd-shim 0c425984d9c544683de0644a77849807a9ee31db99043e3e2bace9d2e9cfdb63 /var/run/docker/libcontainerd/0c425984d9c544683de0644a77849807a9ee31db99043e3e2bace9d2e9cfdb63 docker-runc
29653 ?        Sl     0:00 docker-containerd-shim b1805c289749d432a0680aa7f082703175b647005d240d594124a64e69f5de28 /var/run/docker/libcontainerd/b1805c289749d432a0680aa7f082703175b647005d240d594124a64e69f5de28 docker-runc
29675 ?        Sl     0:36 docker-containerd-shim 6a9751b28d88c61d77859b296a8bde21c6c0c8379089ae7886b7332805bb8463 /var/run/docker/libcontainerd/6a9751b28d88c61d77859b296a8bde21c6c0c8379089ae7886b7332805bb8463 docker-runc
29831 ?        Sl     0:00 docker-containerd-shim 09796b77ef046f29439ce6cab66797314b27e9f77137017773f3b90637107433 /var/run/docker/libcontainerd/09796b77ef046f29439ce6cab66797314b27e9f77137017773f3b90637107433 docker-runc
30040 ?        Sl     0:20 docker-containerd-shim a2e26ba3d11f876b38e88cc6501fae51e7c66c7c2d40982eec72f23301f82772 /var/run/docker/libcontainerd/a2e26ba3d11f876b38e88cc6501fae51e7c66c7c2d40982eec72f23301f82772 docker-runc
30156 ?        Sl     0:00 docker-containerd-shim 35d157883a8c586e5086e940d1a5f2220e2731ca19dd7655c9ee3150321bac66 /var/run/docker/libcontainerd/35d157883a8c586e5086e940d1a5f2220e2731ca19dd7655c9ee3150321bac66 docker-runc
30326 ?        Sl     0:00 docker-containerd-shim 5af072f8c0b1af434139104ad884706079e2c46bf951200eaf9531614e2dc92a /var/run/docker/libcontainerd/5af072f8c0b1af434139104ad884706079e2c46bf951200eaf9531614e2dc92a docker-runc
30500 ?        Sl     0:00 docker-containerd-shim ba71715ba985511a617a7377b3b0d66f0b75af8323c17544c54f75da1a267a1f /var/run/docker/libcontainerd/ba71715ba985511a617a7377b3b0d66f0b75af8323c17544c54f75da1a267a1f docker-runc
30619 ?        Sl     0:08 docker-containerd-shim f42fdd0d4d971442969637f9e1db4c1e45270d86f950e614d8721d767872930a /var/run/docker/libcontainerd/f42fdd0d4d971442969637f9e1db4c1e45270d86f950e614d8721d767872930a docker-runc
30772 ?        Sl     0:00 docker-containerd-shim 8a745ab948d51e41b80992e2246058082f274d30d9f68f46dd3fef2e441afc01 /var/run/docker/libcontainerd/8a745ab948d51e41b80992e2246058082f274d30d9f68f46dd3fef2e441afc01 docker-runc
30916 ?        Sl     0:00 docker-containerd-shim 238f635c6adac1786ee46a99f0c20f36544cc5ebd644fc0c0908d38e9177eb1e /var/run/docker/libcontainerd/238f635c6adac1786ee46a99f0c20f36544cc5ebd644fc0c0908d38e9177eb1e docker-runc
31077 ?        Sl     0:00 docker-containerd-shim 9c208554dcb64c6568f026455a33d64830995c0411c6876fbea66355bab2cb5f /var/run/docker/libcontainerd/9c208554dcb64c6568f026455a33d64830995c0411c6876fbea66355bab2cb5f docker-runc
31252 ?        Sl     0:00 docker-containerd-shim afc0a4c93a27d9451875f8d917b24c64f59ba3b1992ff52f9ac3f93623440a54 /var/run/docker/libcontainerd/afc0a4c93a27d9451875f8d917b24c64f59ba3b1992ff52f9ac3f93623440a54 docker-runc
31515 ?        Sl     0:00 docker-containerd-shim b84b9b1d32bb9001359812a4dbbdf139c64c9eb9cf29475c73b2b498d990826f /var/run/docker/libcontainerd/b84b9b1d32bb9001359812a4dbbdf139c64c9eb9cf29475c73b2b498d990826f docker-runc
31839 ?        Sl     0:00 docker-containerd-shim 5b328bfc29a6a3033c1c5aa39fa38006538307aca3056f17d6421e5855bc496f /var/run/docker/libcontainerd/5b328bfc29a6a3033c1c5aa39fa38006538307aca3056f17d6421e5855bc496f docker-runc
32036 ?        Sl     0:00 docker-containerd-shim 5994ea24313b7e685321bd5bc03c0646c266969fa02f8061c0b4f1d94287f017 /var/run/docker/libcontainerd/5994ea24313b7e685321bd5bc03c0646c266969fa02f8061c0b4f1d94287f017 docker-runc
32137 ?        Sl     0:00 docker-containerd-shim aa4d9711bce7f85e04b94c8f733d0e29fb08763031fa81068acf9b5ee1bf3061 /var/run/docker/libcontainerd/aa4d9711bce7f85e04b94c8f733d0e29fb08763031fa81068acf9b5ee1bf3061 docker-runc

μ’‹μ•„, docker-containerd-shim이 이 마운트 지점을 보고 μžˆμœΌλ―€λ‘œ 계속 μ‚¬μš© μ€‘μž…λ‹ˆλ‹€. docker-containerd-shim이 무엇이고 마운트 지점이 κ±°κΈ°μ—μ„œ λˆ„μΆœλ˜λŠ” μ΄μœ κ°€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λˆ„κ°€ 그것에 λŒ€ν•΄ μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€.

@crosbymichael 당신이 그것에 λŒ€ν•΄ μ•Œκ³ μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.

cc @mrunalp

ν•‘ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. λ‚΄κ°€ λ³Όκ²Œμš”.

@ceecko 이 docker-containerd-shim μŠ€λ ˆλ“œ/ν”„λ‘œμ„ΈμŠ€μ˜ 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€κ°€ 무엇인지 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 이것이 docker 데λͺ¬κ³Ό 마운트 λ„€μž„ 슀페이슀λ₯Ό κ³΅μœ ν•˜μ§€ μ•ŠλŠ”λ‹€κ³  μƒκ°ν•˜λ©° μ•„λ§ˆλ„ κ·Έλž˜μ•Ό ν•  κ²ƒμž…λ‹ˆλ‹€.

@rhvgoyal 그듀은 같은 이름 곡간을 κ³΅μœ ν•©λ‹ˆλ‹€

λ„μ»€λ“œ

# ll /proc/16441/ns/mnt
lrwxrwxrwx. 1 root root 0 Nov  4 23:05 /proc/16441/ns/mnt -> mnt:[4026534781]

3개의 docker-container-shim ν”„λ‘œμ„ΈμŠ€λ₯Ό ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

# ll /proc/23774/ns/mnt
lrwxrwxrwx. 1 root root 0 Nov  8 07:49 /proc/23774/ns/mnt -> mnt:[4026534781]
# ll /proc/27296/ns/mnt
lrwxrwxrwx. 1 root root 0 Nov  8 07:49 /proc/27296/ns/mnt -> mnt:[4026534781]
# ll /proc/31485/ns/mnt
lrwxrwxrwx. 1 root root 0 Nov  8 07:49 /proc/31485/ns/mnt -> mnt:[4026534781]

μ§€κΈˆ μ œκ±°ν•  수 μ—†λŠ” 죽은 μ»¨ν…Œμ΄λ„ˆκ°€ μ—†μŠ΅λ‹ˆλ‹€.
λ¬Έμ œλŠ” 일주일에 두 번 μ •κΈ°μ μœΌλ‘œ λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆλ₯Ό 쀑지 및 μ œκ±°ν•˜κ³  λ™μΌν•œ κ΅¬μ„±μœΌλ‘œ μƒˆ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹œμž‘ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. 이 "λ‹€μ‹œ μ‹œμž‘"ν•˜κΈ° 전에 일뢀 μ»¨ν…Œμ΄λ„ˆκ°€ μ’…λ£Œλ˜μ–΄ μ œκ±°ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μ •κΈ°μ μœΌλ‘œ "λ‹€μ‹œ μ‹œμž‘"ν•˜λ©΄ λŒ€λΆ€λΆ„μ˜ μ»¨ν…Œμ΄λ„ˆκ°€ μ£½μ§€λ§Œ λͺ¨λ“  였래된 μ»¨ν…Œμ΄λ„ˆκ°€ μ€‘μ§€λ˜λ©΄ λͺ¨λ“  죽은 μ»¨ν…Œμ΄λ„ˆκ°€ κ°‘μžκΈ° 제거될 수 μžˆμŠ΅λ‹ˆλ‹€.

λ™μΌν•œ λ¬Έμ œκ°€ μžˆμ§€λ§Œ docker-compose up -d λ₯Ό μ‚¬μš©ν•˜μ—¬ μ»¨ν…Œμ΄λ„ˆλ₯Ό λ‹€μ‹œ λ§Œλ“€λ €κ³  ν•  λ•Œ λͺ‡ 가지 μΆ”κ°€ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

Nov 10 13:25:21 omega dockerd[27830]: time="2016-11-10T13:25:21.418142082-06:00" level=info msg="Container b7fbb78311cdfb393bc2d3d9b7a6f0742d80dc5b672909408809bf6f7af55434 failed to exit within 10 seconds of signal 15 - using
Nov 10 13:25:21 omega dockerd[27830]: time="2016-11-10T13:25:21.530704247-06:00" level=warning msg="libcontainerd: container b7fbb78311cdfb393bc2d3d9b7a6f0742d80dc5b672909408809bf6f7af55434 restart canceled"
Nov 10 13:25:21 omega dockerd[27830]: time="2016-11-10T13:25:21.536115733-06:00" level=error msg="Error closing logger: invalid argument"
Nov 10 13:25:42 omega dockerd[27830]: time="2016-11-10T13:25:42.329001072-06:00" level=error msg="devmapper: Error unmounting device 0795abc37cc58b775ce4fb142271f5de5fa771477310321d1283f37ad6b20df9: Device is Busy"
Nov 10 13:25:42 omega dockerd[27830]: time="2016-11-10T13:25:42.329149437-06:00" level=error msg="Error unmounting container b7fbb78311cdfb393bc2d3d9b7a6f0742d80dc5b672909408809bf6f7af55434: Device is Busy"
Nov 10 13:25:42 omega dockerd[27830]: time="2016-11-10T13:25:42.544584079-06:00" level=error msg="Handler for GET /v1.24/containers/xbpf3invpull/logs returned error: No such container: xbpf3invpull"

특히 Error closing logger: invalid argument 였λ₯˜μ™€ failed to exit within 10 seconds 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. μ΄λŠ” λ‚΄κ°€ dumb-init λ₯Ό μ‚¬μš©ν•˜μ—¬ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹œμž‘ν•˜κΈ° λ•Œλ¬Έμ— λ°œμƒν•˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€κ³  ν™•μ‹ ν•©λ‹ˆλ‹€.

이 였λ₯˜κ°€ 이 λ¬Έμ œμ™€ 관련이 μžˆμŠ΅λ‹ˆκΉŒ?

ν˜„μž¬ 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ…Έλ ₯ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 도움을 λ“œλ¦¬κΈ° μœ„ν•΄ containerd에 곡개 PR을 가지고 μžˆμŠ΅λ‹ˆλ‹€.

이λ₯Ό ν…ŒμŠ€νŠΈν•  μž¬ν˜„ κ°€λŠ₯ν•œ 방법을 μ°ΎκΈ°κ°€ μ–΄λ ΅μŠ΅λ‹ˆλ‹€. μˆ˜μ •μ΄ μ™„λ£Œλœ ν›„ 이 μˆ˜μ •μ„ ν…ŒμŠ€νŠΈν•˜λŠ” 데 관심이 μžˆμœΌμ‹ κ°€μš”?

그래, ν™•μ‹€νžˆ. 이 문제λ₯Ό μž¬ν˜„ν•  수 μžˆλŠ” 가상 머신을 λ§Œλ“€κ³  μˆ˜μ •μ„ μ‹œλ„ν•˜κ² μŠ΅λ‹ˆλ‹€. κ·Έλž˜λ„ μž‘λ™ν•˜μ§€ μ•ŠμœΌλ©΄ λ¬Έμ œκ°€ μžˆλŠ” μ„œλ²„μ—μ„œ ν…ŒμŠ€νŠΈν•˜κ² μŠ΅λ‹ˆλ‹€.

방금 VM을 λ§Œλ“€μ—ˆκ³  (μ•„μ£Ό μ‰½κ²Œ!) 문제λ₯Ό μž¬ν˜„ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

이것이 λ‚΄κ°€ Virtualbox둜 ν•œ μΌμž…λ‹ˆλ‹€.

  1. 일반 μ•„μΉ˜ Linux VM μ„€μΉ˜(일반 μ„€μΉ˜ ν”„λ‘œμ„ΈμŠ€ μ‚¬μš©)
  2. docker, docker-compose 및 μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€(이 경우 nginx 선택)λ₯Ό μ‹€ν–‰ν•  수 μžˆλŠ” λ‹€λ₯Έ 데λͺ¬μ„ μ„€μΉ˜ν•œ λ‹€μŒ systemctl enable docker μ‹œμŠ€ν…œμ„ μž¬λΆ€νŒ…ν•©λ‹ˆλ‹€.
  3. 500개의 μž‘μ—…μž ν”„λ‘œμ„ΈμŠ€μ™€ ν•¨κ»˜ μ‹€ν–‰λ˜λ„λ‘ nginx ꡬ성
  4. 3개의 μž₯κΈ° μ‹€ν–‰ μ»¨ν…Œμ΄λ„ˆκ°€ μžˆλŠ” docker-compose νŒŒμΌμ„ λ§Œλ“­λ‹ˆλ‹€(postgres, νƒœκ·Έ 9.2 선택).
  5. docker-compose up -d
  6. systemctl start nginx
  7. 이미지 νƒœκ·Έ 9.3을 μ‚¬μš©ν•˜λ„λ‘ docker-compose 파일 λ‚΄λΆ€μ˜ λͺ‡ 가지 μ»¨ν…Œμ΄λ„ˆ 버전 λ³€κ²½
  8. docker-compose pull
  9. docker-compose up -d (μ»¨ν…Œμ΄λ„ˆλ₯Ό λ‹€μ‹œ μƒμ„±ν•˜λ €κ³  μ‹œλ„ν•œ λ‹€μŒ 두 μ»¨ν…Œμ΄λ„ˆ λͺ¨λ‘μ— λŒ€ν•΄ "μž₯μΉ˜κ°€ μ‚¬μš© μ€‘μž…λ‹ˆλ‹€" 였λ₯˜κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€.

nginxλ₯Ό μ€‘μ§€ν•˜λ©΄ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

docker-compose.yml ν˜„μž¬(λ‚˜λŠ” μ‹€νŒ¨ν•œ μ‹œμŠ€ν…œμ˜ 도컀 섀정을 λͺ¨λ°©ν•¨):

μš”μ²­ μ‹œ VM에 λŒ€ν•œ μ•‘μ„ΈμŠ€λ₯Ό μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‘œκ·ΈμΈμ„ 보낼 이메일을 μ €μ—κ²Œλ§Œ μ£Όμ‹­μ‹œμ˜€.

@mlaventure 이 문제λ₯Ό λ‹€μ‹œ μ—΄ 수 μžˆμŠ΅λ‹ˆκΉŒ? ν˜„μž¬λ‘œμ„œλŠ” 이 λ¬Έμ œκ°€ μˆ˜μ •λ˜μ—ˆλŠ”μ§€ μ—¬λΆ€λ₯Ό μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.

@SEAPUNK μš°λ¦¬λŠ” 이 μ œμ•ˆλœ μˆ˜μ • μ‚¬ν•­μœΌλ‘œ containerdλ₯Ό μ—…λ°μ΄νŠΈν•  κ²ƒμž…λ‹ˆλ‹€. ν…ŒμŠ€νŠΈν•  κΈ°νšŒκ°€ μžˆλ‹€λ©΄ μ‹œλ„ν•΄ λ³Ό 수 μžˆλŠ” λ°”μ΄λ„ˆλ¦¬λ₯Ό μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ¬Όλ‘ , λ‚΄ VM이 λŒ€κΈ° μƒνƒœμž…λ‹ˆλ‹€.

λ°”μ΄λ„ˆλ¦¬κ°€ μ–Έμ œ 쀀비될지 μ•Œ 수 μžˆμŠ΅λ‹ˆκΉŒ?

@SEAνŽ‘ν¬ 1.13 릴리슀 ν›„λ³΄λŠ” μ§€κΈˆ ν…ŒμŠ€νŠΈν•  수 있으며 이 λ³€κ²½ 사항이 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. https://github.com/docker/docker/releases

μ•Œκ² μŠ΅λ‹ˆλ‹€. μ‹œλ„ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. 감사 ν•΄μš”!

λ‚˜λŠ” λͺ¨λ‘μ—κ²Œ,
여기에보고 된 것과 λ™μΌν•œ λ¬Έμ œκ°€ μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

[asantos<strong i="7">@fosters</strong> atp]$ docker-compose -f docker-compose-tst-u.yml rm api
Going to remove atp_api_1
Are you sure? [yN] y
Removing atp_api_1 ... error

ERROR: for atp_api_1  Driver devicemapper failed to remove root filesystem 63fac33396c5ab7de18505b6a6b6f41b4f927abeca74472fbe8490656ed85f3f: Device is Busy



dez 02 11:26:11 fosters.vi.pt kernel: device-mapper: ioctl: unable to remove open device docker-253:1-1315304-214b3ed3285aae193228831aba63b4e24592a96facfb604e4d2ff8b36000d6f9
dez 02 11:26:11 fosters.vi.pt kernel: device-mapper: ioctl: unable to remove open device docker-253:1-1315304-214b3ed3285aae193228831aba63b4e24592a96facfb604e4d2ff8b36000d6f9
dez 02 11:26:11 fosters.vi.pt kernel: device-mapper: ioctl: unable to remove open device docker-253:1-1315304-214b3ed3285aae193228831aba63b4e24592a96facfb604e4d2ff8b36000d6f9
dez 02 11:26:11 fosters.vi.pt kernel: device-mapper: ioctl: unable to remove open device docker-253:1-1315304-214b3ed3285aae193228831aba63b4e24592a96facfb604e4d2ff8b36000d6f9
dez 02 11:26:11 fosters.vi.pt kernel: device-mapper: ioctl: unable to remove open device docker-253:1-1315304-214b3ed3285aae193228831aba63b4e24592a96facfb604e4d2ff8b36000d6f9
dez 02 11:26:11 fosters.vi.pt kernel: device-mapper: ioctl: unable to remove open device docker-253:1-1315304-214b3ed3285aae193228831aba63b4e24592a96facfb604e4d2ff8b36000d6f9
dez 02 11:26:11 fosters.vi.pt kernel: device-mapper: ioctl: unable to remove open device docker-253:1-1315304-214b3ed3285aae193228831aba63b4e24592a96facfb604e4d2ff8b36000d6f9
dez 02 11:26:15 fosters.vi.pt docker[2535]: time="2016-12-02T11:26:15.943631263Z" level=error msg="Error removing mounted layer 63fac33396c5ab7de18505b6a6b6f41b4f927abeca74472fbe8490656ed85f3f: Device is Busy"
dez 02 11:26:15 fosters.vi.pt docker[2535]: time="2016-12-02T11:26:15.943863042Z" level=error msg="Handler for DELETE /v1.22/containers/63fac33396c5ab7de18505b6a6b6f41b4f927abeca74472fbe8490656ed85f3f returned error: Driver devicemapper failed to remove root filesystem 63fac33396c5ab7de18505b6a6b6f41b4f927abeca74472
dez 02 11:26:17 fosters.vi.pt docker[2535]: time="2016-12-02T11:26:17.299066706Z" level=error msg="Handler for GET /containers/7ea053faaf5afac4af476a70d2a9611a6b882d6a135bcea7c86579a6ae657884/json returned error: No such container: 7ea053faaf5afac4af476a70d2a9611a6b882d6a135bcea7c86579a6ae657884"
dez 02 11:26:17 fosters.vi.pt docker[2535]: time="2016-12-02T11:26:17.299608100Z" level=error msg="Handler for GET /containers/c3b1a805ed5d19a5f965d0ac979f05cbb59f362336041daea90a2fa4a1845d7d/json returned error: No such container: c3b1a805ed5d19a5f965d0ac979f05cbb59f362336041daea90a2fa4a1845d7d"


[asantos<strong i="8">@fosters</strong> atp]$ docker info
Containers: 4
 Running: 3
 Paused: 0
 Stopped: 1
Images: 110
Server Version: 1.12.3
Storage Driver: devicemapper
 Pool Name: docker-253:1-1315304-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file: /dev/fosters/docker-data
 Metadata file: /dev/fosters/docker-metadata
 Data Space Used: 10.71 GB
 Data Space Total: 20.72 GB
 Data Space Available: 10.02 GB
 Metadata Space Used: 16.73 MB
 Metadata Space Total: 2.303 GB
 Metadata Space Available: 2.286 GB
 Thin Pool Minimum Free Space: 2.072 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Library Version: 1.02.131 (2016-07-15)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: overlay null bridge host
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.8.8-300.fc25.x86_64
Operating System: Fedora 25 (Workstation Edition)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.672 GiB
Name: fosters.vi.pt
ID: EBFN:W46P:BMFR:OSJ5:UPY2:7KAT:5NMT:KAOF:XQI3:ITEM:XQNL:46P7
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: xxxxxxx
Registry: https://index.docker.io/v1/
Insecure Registries:
 127.0.0.0/8

PKGBUILDλ₯Ό 톡해 λ°”μ΄λ„ˆλ¦¬λ₯Ό μˆ˜λ™μœΌλ‘œ λΉŒλ“œν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. 더 κ°„λ‹¨ν•˜κ³  쑰정을 톡해 PKGBUILDκ°€ νŠΉμ • containerd 컀밋(docker/containerd@03e5862ec0d8d3b3f750e19fca3ee367e13c090e둜 μ„€μ •)을 μ‚¬μš©ν•˜λ„λ‘ κ°•μ œν•  수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/docker #n19

곧 μˆ˜μ • κ²°κ³Όκ°€ λ‚˜μ™€μ•Ό ν•©λ‹ˆλ‹€.

λ‚΄κ°€ λ­”κ°€ 잘λͺ»ν•˜κ³  μžˆμ„μ§€ λͺ¨λ₯΄μ§€λ§Œ μ§€κΈˆμ€ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ „ν˜€ μ‹œμž‘ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

였, runcλ₯Ό μ—…λ°μ΄νŠΈν•΄μ•Ό ν•  것 κ°™μŠ΅λ‹ˆλ‹€... brb μž¬κ΅¬μΆ•

예, μˆ˜μ •μ΄ μž‘λ™ν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

docker info

Containers: 3
 Running: 0
 Paused: 0
 Stopped: 3
Images: 8
Server Version: 1.13.0-rc2
Storage Driver: devicemapper
 Pool Name: docker-8:1-1835956-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 745.6 MB
 Data Space Total: 107.4 GB
 Data Space Available: 27.75 GB
 Metadata Space Used: 2.744 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.145 GB
 Thin Pool Minimum Free Space: 10.74 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.136 (2016-11-05)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
runc version: 51371867a01c467f08af739783b8beafc154c4d7
init version: N/A (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.8.11-1-ARCH
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 3.864 GiB
Name: docker-vm
ID: KOVC:UCU5:5J77:P7I6:XXBX:33ST:H3UZ:GA7G:O7IF:P4RZ:VSSW:YBMJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

docker version

[root@docker-vm ~]# docker version
Client:
 Version:      1.13.0-rc2
 API version:  1.25
 Go version:   go1.7.4
 Git commit:   1f9b3ef
 Built:        Fri Dec  2 12:37:59 2016
 OS/Arch:      linux/amd64

Server:
 Version:             1.13.0-rc2
 API version:         1.25
 Minimum API version: 1.12
 Go version:          go1.7.4
 Git commit:          1f9b3ef
 Built:               Fri Dec  2 12:37:59 2016
 OS/Arch:             linux/amd64
 Experimental:        false

μžμ‹ μ˜ VMμ—μ„œ 이것을 μž¬ν˜„ν•  수 μ—†λ‹€λ©΄ 이 문제λ₯Ό μž¬ν˜„ν•˜κ³  μ‚¬μš©μž 지정 Docker νŒ¨ν‚€μ§€λ₯Ό λΉŒλ“œν•˜λŠ” VM에 λŒ€ν•œ μ•‘μ„ΈμŠ€λ₯Ό μ œκ³΅ν•  μš©μ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.

CentOs 7의 docker 1.12.3μ—μ„œ 이것을 보고 μžˆμŠ΅λ‹ˆλ‹€.

dc2-elk-02:/root/staging/ls-helper$ 도컀 --버전
Docker 버전 1.12.3, λΉŒλ“œ 6b644ec
dc2-elk-02:/root/staging/ls-helper$ uname -a
Linux dc2-elk-02 3.10.0-327.36.3.el7.x86_64 #1 SMP μ›”μš”μΌ 10μ›” 24일 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
dc2-elk-02:/root/staging/ls-helper$ 도컀 rm ls-helper
데λͺ¬μ˜ 였λ₯˜ 응닡: λ“œλΌμ΄λ²„ devicemapperκ°€ 루트 파일 μ‹œμŠ€ν…œ e1b9cdb519d2f4bea53a552c8b76c1085650aa76c1fb90c8e22cac9c2e18830: Device is Busyλ₯Ό μ œκ±°ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 도컀 μž‘μ„±μ„ μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ‚˜λ„ μ•„λ§ˆ 이 였λ₯˜κ°€ λ°œμƒν–ˆμ„ 것 κ°™λ‹€.

Flocker에 λŒ€ν•œ 승인 ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•  λ•Œ λ‹€μŒκ³Ό 같은 였λ₯˜κ°€ 많이 λ‚˜νƒ€λ‚©λ‹ˆλ‹€.

[root@acceptance-test-richardw-axpeyhrci22pi-1 ~]# journalctl  --boot --dmesg
...
Dec 13 17:34:56 acceptance-test-richardw-axpeyhrci22pi-1 kernel: dev_remove: 41 callbacks suppressed
Dec 13 17:34:56 acceptance-test-richardw-axpeyhrci22pi-1 kernel: device-mapper: ioctl: unable to remove open device docker-8:1-1072929-8a41ac9ebe13aa65b8513000bec2606a1dfc3ff624082dc9f4636b0e88d8ac62
Dec 13 17:34:56 acceptance-test-richardw-axpeyhrci22pi-1 kernel: device-mapper: ioctl: unable to remove open device docker-8:1-1072929-8a41ac9ebe13aa65b8513000bec2606a1dfc3ff624082dc9f4636b0e88d8ac62
Dec 13 17:34:56 acceptance-test-richardw-axpeyhrci22pi-1 kernel: device-mapper: ioctl: unable to remove open device docker-8:1-1072929-8a41ac9ebe13aa65b8513000bec2606a1dfc3ff624082dc9f4636b0e88d8ac62
Dec 13 17:34:56 acceptance-test-richardw-axpeyhrci22pi-1 kernel: device-mapper: ioctl: unable to remove open device docker-8:1-1072929-8a41ac9ebe13aa65b8513000bec2606a1dfc3ff624082dc9f4636b0e88d8ac62
Dec 13 17:34:56 acceptance-test-richardw-axpeyhrci22pi-1 kernel: device-mapper: ioctl: unable to remove open device docker-8:1-1072929-8a41ac9ebe13aa65b8513000bec2606a1dfc3ff624082dc9f4636b0e88d8ac62
Dec 13 17:34:56 acceptance-test-richardw-axpeyhrci22pi-1 kernel: device-mapper: ioctl: unable to remove open device docker-8:1-1072929-8a41ac9ebe13aa65b8513000bec2606a1dfc3ff624082dc9f4636b0e88d8ac62
Dec 13 17:34:56 acceptance-test-richardw-axpeyhrci22pi-1 kernel: device-mapper: ioctl: unable to remove open device docker-8:1-1072929-8a41ac9ebe13aa65b8513000bec2606a1dfc3ff624082dc9f4636b0e88d8ac62
Dec 13 17:34:56 acceptance-test-richardw-axpeyhrci22pi-1 kernel: device-mapper: ioctl: unable to remove open device docker-8:1-1072929-8a41ac9ebe13aa65b8513000bec2606a1dfc3ff624082dc9f4636b0e88d8ac62
Dec 13 17:34:56 acceptance-test-richardw-axpeyhrci22pi-1 kernel: device-mapper: ioctl: unable to remove open device docker-8:1-1072929-8a41ac9ebe13aa65b8513000bec2606a1dfc3ff624082dc9f4636b0e88d8ac62
Dec 13 17:34:56 acceptance-test-richardw-axpeyhrci22pi-1 kernel: device-mapper: ioctl: unable to remove open device docker-8:1-1072929-8a41ac9ebe13aa65b8513000bec2606a1dfc3ff624082dc9f4636b0e88d8ac62
Dec 13 17:35:00 acceptance-test-richardw-axpeyhrci22pi-1 kernel: XFS (dm-1): Unmounting Filesystem
[root@acceptance-test-richardw-axpeyhrci22pi-1 ~]# journalctl --boot --unit docker
...
-- Logs begin at Tue 2016-12-13 17:30:53 UTC, end at Tue 2016-12-13 18:01:09 UTC. --
Dec 13 17:31:12 acceptance-test-richardw-axpeyhrci22pi-1 systemd[1]: Starting Docker Application Container Engine...
Dec 13 17:31:14 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:31:14.676133774Z" level=info msg="libcontainerd: new containerd process, pid: 1034"
Dec 13 17:31:16 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:31:16.209852977Z" level=warning msg="devmapper: Usage of loopback devices is strongly discouraged for production use. Please use `--storage-opt dm.thinpooldev` or use `man docker`
Dec 13 17:31:16 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:31:16.241124769Z" level=warning msg="devmapper: Base device already exists and has filesystem xfs on it. User specified filesystem  will be ignored."
Dec 13 17:31:16 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:31:16.259633105Z" level=info msg="[graphdriver] using prior storage driver \"devicemapper\""
Dec 13 17:31:16 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:31:16.423748590Z" level=info msg="Graph migration to content-addressability took 0.00 seconds"
Dec 13 17:31:16 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:31:16.443108711Z" level=info msg="Loading containers: start."
Dec 13 17:31:16 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:31:16.507397974Z" level=info msg="Firewalld running: true"
Dec 13 17:31:17 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:31:17.025244392Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
Dec 13 17:31:17 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:31:17.195947610Z" level=info msg="Loading containers: done."
Dec 13 17:31:17 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:31:17.196550209Z" level=info msg="Daemon has completed initialization"
Dec 13 17:31:17 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:31:17.196575340Z" level=info msg="Docker daemon" commit=1564f02 graphdriver=devicemapper version=1.12.4
Dec 13 17:31:17 acceptance-test-richardw-axpeyhrci22pi-1 systemd[1]: Started Docker Application Container Engine.
Dec 13 17:31:17 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:31:17.231752452Z" level=info msg="API listen on [::]:2376"
Dec 13 17:31:17 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:31:17.231875125Z" level=info msg="API listen on /var/run/docker.sock"
Dec 13 17:32:41 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:32:41.631480676Z" level=error msg="devmapper: Error unmounting device 2a1e449a617f575520ef95c99fb8feab06986b7b86d81e7236a49e1a1cf192bb: Device is Busy"
Dec 13 17:32:41 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:32:41.632903143Z" level=error msg="Error unmounting container 117647e8bdd4e401d8d983c80872b84385d202015265663fae39754379ece719: Device is Busy"
Dec 13 17:33:20 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:33:20.300663432Z" level=error msg="devmapper: Error unmounting device 52e079667cf40f83b5be6d9375261500a626885581f41fc99873af58bc75939e: Device is Busy"
Dec 13 17:33:20 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:33:20.301660779Z" level=error msg="Error unmounting container 2aeabbd72f90da6d4fb1c797068f5c49c8e4da2182daba331dfe3e3da29c5053: Device is Busy"
Dec 13 17:34:50 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:34:50.461588888Z" level=error msg="devmapper: Error unmounting device 8a41ac9ebe13aa65b8513000bec2606a1dfc3ff624082dc9f4636b0e88d8ac62: Device is Busy"
Dec 13 17:34:50 acceptance-test-richardw-axpeyhrci22pi-1 dockerd[795]: time="2016-12-13T17:34:50.462602087Z" level=error msg="Error unmounting container e0c45f71e2992831a10bc68562bcc266beba6ef07546d950f3cfb06c39873505: Device is Busy"

[root@acceptance-test-richardw-axpeyhrci22pi-1 ~]# docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 4
Server Version: 1.12.4
Storage Driver: devicemapper
 Pool Name: docker-8:1-1072929-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 525.5 MB
 Data Space Total: 107.4 GB
 Data Space Available: 8.327 GB
 Metadata Space Used: 1.384 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.146 GB
 Thin Pool Minimum Free Space: 10.74 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.135-RHEL7 (2016-09-28)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: flocker local
 Network: host bridge overlay null
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.10.0-514.2.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.305 GiB
Name: acceptance-test-richardw-axpeyhrci22pi-1
ID: 4OHX:ODXJ:R2MH:ZMRK:52B6:J4TH:PMDR:OQ5D:YUQB:5RE3:YDAQ:V5JP
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Insecure Registries:
 127.0.0.0/8

[root@acceptance-test-richardw-axpeyhrci22pi-1 ~]# cat /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process

[Install]
WantedBy=multi-user.target

@hvgoyal @rhatdan @vbatts
systemd docker.service λ‹¨μœ„ νŒŒμΌμ— MountFlags 없이 μ§€μ—°λœ μ‚­μ œ 및 μ œκ±°κ°€ ν™œμ„±ν™”λœ=true인 dockerd 1.12.4λ₯Ό μ‹€ν–‰ν•˜λŠ” RHEL7.1μ—μ„œ 쀑지/죽은 μ»¨ν…Œμ΄λ„ˆ μ‚­μ œ/제거 쀑에 'μž₯치 μ‚¬μš© 쀑' λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€.
λ‹€μŒκ³Ό 같은 컀널 λ©”μ‹œμ§€λ„ ν‘œμ‹œλ©λ‹ˆλ‹€.
"컀널: μž₯치 맀퍼: 씬: 씬 μž₯치 120 μ‚­μ œμ— μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€." (120은 μ œκ±°λ˜λŠ” μ»¨ν…Œμ΄λ„ˆμ˜ 씬풀 μž₯치의 μž₯치 IDμž„)

λͺ¨λ“  κ²½μš°μ— μ œκ±°λ˜λŠ” μ»¨ν…Œμ΄λ„ˆμ˜ devicemapper 씬풀 μž₯치 마운트 지점이 MountFlag=private/slave둜 μ‹œμž‘λ˜λŠ” ν˜ΈμŠ€νŠΈμ— μžˆλŠ” λ‹€λ₯Έ pid의 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ λˆ„μΆœλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

  • ntpd.serviceλŠ” RHELμ—μ„œ PrivateTmp=true둜 μ‹œμž‘λ©λ‹ˆλ‹€.
  • systemd-udevd μ„œλΉ„μŠ€λŠ” RHELμ—μ„œ MountFlags=slave둜 μ‹œμž‘λ©λ‹ˆλ‹€.
    μ»¨ν…Œμ΄λ„ˆ μ‚­μ œκ°€ μ‹€νŒ¨ν•œ ν˜ΈμŠ€νŠΈμ—μ„œ μ΄λŸ¬ν•œ ν”„λ‘œμ„ΈμŠ€ 쀑 ν•˜λ‚˜λŠ” ν•΄λ‹Ή μ»¨ν…Œμ΄λ„ˆ μ‹œμž‘ μ‹œκ°„ 이후에 λ‹€μ‹œ μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λ”°λΌμ„œ μœ„μ˜ μ‹œμŠ€ν…œ ν”„λ‘œμ„ΈμŠ€λŠ” 기본적으둜 κ°œλ³„μ μœΌλ‘œ λ³€κ²½/μ œμ–΄ν•  수 μ—†λŠ” 일뢀 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό 곡유 ν•΄μ œν•˜λ―€λ‘œ 호슀트 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ 마운트 지점을 λˆ„μΆœν•˜λŠ” 것이 맀우 μ‰¬μš΄ κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€.
mountflags=slave둜 dockerdλ₯Ό μ‹€ν–‰ν•˜λŠ” 것이 μœ μΌν•œ μ†”λ£¨μ…˜μž…λ‹ˆκΉŒ? λ˜ν•œ mountflags=slave(기본값은 곡유)κ°€ 도컀 μ‹œμŠ€ν…œ λ‹¨μœ„ νŒŒμΌμ—μ„œ μ–Όλ§ˆ 전에 제거된 이유λ₯Ό μ΄ν•΄ν•˜λŠ” 데 도움을 쀄 수 μžˆμŠ΅λ‹ˆκΉŒ?
μ–΄λ–€ μ‹œλ‚˜λ¦¬μ˜€μ—μ„œ 슬레이브 마운트 지점 μ „νŒŒλ‘œ dockerdλ₯Ό μ‹€ν–‰ν•˜λ©΄ λ‹€λ₯Έ λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆκΉŒ?
감사 ν•΄μš”.

RHEL 컀널과 Fedoraμ—μ„œ 자체 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ dockerdλ₯Ό μ‹€ν–‰ν•˜λ„λ‘ κ°•μ œν•˜λŠ” μˆ˜μ •ν•˜λ €λŠ” μ—…μŠ€νŠΈλ¦Ό 컀널은 λ‹€λ₯΄κ²Œ μž‘λ™ν•˜λ―€λ‘œ 호슀트 λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ dockerdλ₯Ό μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@rhvgoyal 은 λ‹Ήμ‹ μ—κ²Œ

@ravilr , rhel/centos μ»€λ„μ—μ„œ μ§€μ—°λœ μ‚­μ œλ₯Ό λΉ„ν™œμ„±ν™”ν•©λ‹ˆλ‹€. μ»€λ„μ—λŠ” 이λ₯Ό μ§€μ›ν•˜λŠ” νŒ¨μΉ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€.

λ˜ν•œ MountFlags=slaveλ₯Ό μ‚¬μš©ν•˜μ—¬ dockerλ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€.

rhel/centos μ»€λ„μ—μ„œ 지연 제거λ₯Ό 계속 μ‚¬μš©ν•  수 있으며 μž‘λ™ν•΄μ•Ό ν•©λ‹ˆλ‹€.

BTW, docker-storage-setup을 μ‚¬μš©ν•˜μ—¬ μŠ€ν† λ¦¬μ§€λ₯Ό μ„€μ •ν•˜λŠ” 경우 κΈ°λ³Έ 컀널이 지연 μ‚­μ œλ₯Ό μ§€μ›ν•˜λŠ”μ§€ μ—¬λΆ€λ₯Ό μžλ™μœΌλ‘œ νŒŒμ•…ν•˜κ³  그에 따라 ν•΄λ‹Ή μ˜΅μ…˜μ„ μ„€μ •/ν•΄μ œν•©λ‹ˆλ‹€.

@rhvgoyal μ»¨ν…Œμ΄λ„ˆ 루트 파일 μ‹œμŠ€ν…œ μ œκ±°μ— μ‹€νŒ¨ν•œ ν›„ 곡간을 ν™•λ³΄ν•˜λŠ” 방법을 μ•Œκ³  μžˆμŠ΅λ‹ˆκΉŒ?

@rhvgoyal μ œμ•ˆ κ°μ‚¬ν•©λ‹ˆλ‹€. μ œμ•ˆν•˜μ‹  λŒ€λ‘œ μ‹œλ„ν•˜κ³  μ»¨ν…Œμ΄λ„ˆ μ œκ±°μ™€ κ΄€λ ¨λœ λ¬Έμ œκ°€ 계속 λ°œμƒν•˜λ©΄ 여기에 λ‹€μ‹œ λ³΄κ³ ν•˜κ² μŠ΅λ‹ˆλ‹€.

좩돌; 이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 도움이 ν•„μš”ν•œ 정보가 더 μžˆμŠ΅λ‹ˆκΉŒ?

λ‚˜λŠ” Centos 7μ—μ„œ 1.12.5λ₯Ό μ‹€ν–‰ν•˜λŠ” 것을 직접 μ³€μŠ΅λ‹ˆλ‹€.

moutflags=slaveλ₯Ό ν™œμ„±ν™”ν•˜κ³  μ§€μ—°λœ 제거 및 μ‚­μ œλ₯Ό ν™œμ„±ν™”ν•˜λ©΄ 이 λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이제 λ‚˜λŠ”μ΄ 경쟁 쑰건 버그λ₯Ό 치고 μžˆμŠ΅λ‹ˆλ‹€. https://github.com/docker/docker/issues/23418

이것은 λΆ™μ–΄ μžˆλŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό κ°•μ œλ‘œ μ œκ±°ν•˜λŠ” 것보닀 μ•½ 100λ°° λ‚«μ§€λ§Œ μ—¬μ „νžˆ μ’‹μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€.

xfs의 CentOS 7μ—μ„œ μž¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ™μΌν•œ 문제, Docker 1.13.0 - CentOS7:

docker-compose down
Removing container_container_1 ... error

ERROR: for container_container_1  Driver devicemapper failed to remove root filesystem 4d2d6c59f8435436e4144cc4e8675a0828658014cf53804f786ef2b175b4b324: Device is Busy

이 λ¬Έμ œμ— λŒ€ν•œ 해결책이 μžˆμŠ΅λ‹ˆκΉŒ? μ—¬μ „νžˆ λ¬Έμ œκ°€ ν‘œμ‹œλ˜λ©° μž₯치λ₯Ό μ—΄μ–΄λ‘” μƒνƒœλ‘œ μœ μ§€ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό μ°ΎμœΌλ €λŠ” μ‹œλ„κ°€ μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€. μ‚¬μš© 쀑인 μž₯치λ₯Ό 열어두고 μžˆλŠ” ν”„λ‘œμ„ΈμŠ€κ°€ μ—†λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

감사 ν•΄μš”.

(λ‚΄ μ˜κ²¬μ— λŒ€ν•œ μ—…λ°μ΄νŠΈ: μŠ€λ ˆλ“œλ₯Ό 처음 읽을 λ•ŒλŠ” λͺ…ν™•ν•˜μ§€ μ•Šμ•˜μ§€λ§Œ 지연 제거λ₯Ό ν™œμ„±ν™”ν•˜κ³  MountFlags=slaveλ₯Ό μ„€μ •ν•˜λ©΄ λ¬Έμ œκ°€ 해결될 수 μžˆμŠ΅λ‹ˆλ‹€. Docker도 1.13으둜 μ—…λ°μ΄νŠΈν•˜κ² μŠ΅λ‹ˆλ‹€.)

이 문제λ₯Ό ν•΄κ²°ν•˜λ €λŠ” μ‚¬λžŒμ€ μœ„μ˜ @ravilr 의 μ˜κ²¬μ„ λ³Ό 수 있으며 μžμ„Έν•œ λ‚΄μš©μ€ μ•„λž˜μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  κ²½μš°μ— μ œκ±°λ˜λŠ” μ»¨ν…Œμ΄λ„ˆμ˜ devicemapper 씬풀 μž₯치 마운트 지점이 MountFlag=private/slave둜 μ‹œμž‘λ˜λŠ” ν˜ΈμŠ€νŠΈμ— μžˆλŠ” λ‹€λ₯Έ pid의 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ λˆ„μΆœλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

ntpd.serviceλŠ” RHELμ—μ„œ PrivateTmp=true둜 μ‹œμž‘λ©λ‹ˆλ‹€.
systemd-udevd μ„œλΉ„μŠ€λŠ” RHELμ—μ„œ MountFlags=slave둜 μ‹œμž‘λ©λ‹ˆλ‹€.
μ»¨ν…Œμ΄λ„ˆ μ‚­μ œκ°€ μ‹€νŒ¨ν•œ ν˜ΈμŠ€νŠΈμ—μ„œ μ΄λŸ¬ν•œ ν”„λ‘œμ„ΈμŠ€ 쀑 ν•˜λ‚˜λŠ” ν•΄λ‹Ή μ»¨ν…Œμ΄λ„ˆ μ‹œμž‘ μ‹œκ°„ 이후에 λ‹€μ‹œ μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

either of these processes were restarted after the corresponding container start time. κ°€ 핡심이고, "tmp"와 같은 일뢀 λ””λ ‰ν† λ¦¬μ˜ νŒŒμΌμ€ docker μ»¨ν…Œμ΄λ„ˆλΏλ§Œ μ•„λ‹ˆλΌ λ‹€λ₯Έ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ μ‚¬μš©ν•˜λ―€λ‘œ dockerκ°€ κ°•μ œλ‘œ νŒŒμΌμ„ μ’…λ£Œν•  수 μ—†μŠ΅λ‹ˆλ‹€.
λ‹€μ‹œ μ‹œμž‘λœ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ€‘μ§€ν•˜κ±°λ‚˜ μ‹œμŠ€ν…œ λ§€κ°œλ³€μˆ˜ PrivateTmp=true λ₯Ό false둜 μ„€μ •ν•˜κ³  λ‹€μ‹œ μ‹œμž‘ν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ°Έμ‘°: https://www.freedesktop.org/software/systemd/man/systemd.exec.html

@KevinTHU μ–΄μ©Œλ©΄ λ‚΄κ°€ λ‹Ήμ‹ μ˜ μ˜κ²¬μ„ μ˜€ν•΄ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ λ‚΄ 경우(μš°λΆ„νˆ¬ 14.04) 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ ν•΄μ•Ό ν•  일은 도컀 μ„œλΉ„μŠ€ 자체λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
( service docker restart ). "ntpd.service" λ˜λŠ” "systemd-udevd μ„œλΉ„μŠ€"κ°€ κ΄€λ ¨λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

그게 말이 λ©λ‹ˆκΉŒ?

@quexer λ¬Όλ‘  dockerλ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜λ©΄ 이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμ§€λ§Œ λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆλ„ λ‹€μ‹œ μ‹œμž‘λ˜λ―€λ‘œ ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œλŠ” λΉ„μš©μ΄ λ„ˆλ¬΄ 많이 λ“­λ‹ˆλ‹€.

@KevinTHU λ‹€μ‹œ μ‹œμž‘ κ³ μ • ν‘œμ‹œκΈ° μ„œλΉ„μŠ€λŠ” 싀행쀑인 λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆμ— 영ν–₯을주지 μ•ŠμŠ΅λ‹ˆλ‹€. 직접 μ‹œλ„ν•΄ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

@quexer ꡬ성에 따라 λ‹€λ¦…λ‹ˆλ‹€. ν•˜μ§€λ§Œ --live-restore λͺ¨λ“œλ‘œ μ‹€ν–‰ 쀑인 μ»¨ν…Œμ΄λ„ˆλ₯Ό κ·ΈλŒ€λ‘œ 두면 λ¬Έμ œκ°€ ν•΄κ²°λ˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
기본적으둜 DockerλŠ” μ’…λ£Œ μ‹œ λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆλ₯Ό μ€‘μ§€ν•œ λ‹€μŒ λ°±μ—…ν•  λ•Œ 무언가가 있으면 μ»¨ν…Œμ΄λ„ˆλ„ μ’…λ£Œν•©λ‹ˆλ‹€.

@cpuguy83 @KevinTHU μ£„μ†‘ν•©λ‹ˆλ‹€. 제 잘λͺ»μž…λ‹ˆλ‹€. λ§žμŠ΅λ‹ˆλ‹€. dockerλ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜λ©΄ λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆκ°€ λ‹€μ‹œ μ‹œμž‘λ©λ‹ˆλ‹€.

이제 κ°‘μžκΈ° λ‚΄ VM 쀑 ν•˜λ‚˜μ—μ„œ μ •κΈ°μ μœΌλ‘œ 이것을 μ–»κ³  μžˆμŠ΅λ‹ˆλ‹€. ν₯λ―Έλ‘­κ²Œλ„ κ·Έ 쀑 ν•˜λ‚˜λŠ” 8μ‹œκ°„ 이상 λ°©μΉ˜ν•œ 후에 μ‚­μ œν•  수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ‚΄ μ •λ³΄λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

rlpowell@vrici> sudo docker info
Containers: 15
 Running: 3
 Paused: 0
 Stopped: 12
Images: 155
Server Version: 1.12.6
Storage Driver: devicemapper
 Pool Name: docker-253:0-2621441-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 24.5 GB
 Data Space Total: 107.4 GB
 Data Space Available: 24.28 GB
 Metadata Space Used: 29.57 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.118 GB
 Thin Pool Minimum Free Space: 10.74 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.135 (2016-09-26)
Logging Driver: journald
Cgroup Driver: systemd
Plugins:
 Volume: local
 Network: host bridge null overlay
 Authorization: rhel-push-plugin
Swarm: inactive
Runtimes: oci runc
Default Runtime: oci
Security Options: seccomp selinux
Kernel Version: 4.9.0-0.rc1.git4.1.fc26.x86_64
Operating System: Fedora 26 (Server Edition)
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 2
CPUs: 4
Total Memory: 8.346 GiB
Name: vrici.digitalkingdom.org
ID: JIIS:TCH7:ZYXV:M2KK:EXQH:GZPY:OAPY:2DJF:SE7A:UZBO:A3PX:NUWF
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://registry.access.redhat.com/v1/
Insecure Registries:
 127.0.0.0/8
Registries: registry.access.redhat.com (secure), docker.io (secure)

그리고 또 κ³ μž₯λ‚¬μŠ΅λ‹ˆλ‹€.

이것이 관련이 μžˆλŠ”μ§€ λͺ¨λ₯΄μ§€λ§Œ /var/log/messagesμ—λŠ” λ‹€μŒμ΄ μžˆμŠ΅λ‹ˆλ‹€.

2μ›” 14일 16:58:49 vrici 컀널: dev_remove: 40개의 콜백이 μ–΅μ œλ¨
2μ›” 14일 16:58:54 vrici 컀널: dev_remove: 40개의 콜백 μ–΅μ œ
2μ›” 14일 16:58:59 vrici 컀널: dev_remove: 40개 콜백 μ–΅μ œ

ν˜„μž¬ 였λ₯˜λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

데λͺ¬μ˜ Busdef89 였λ₯˜ 응닡: λ“œλΌμ΄λ²„ devicemapperκ°€ 루트 파일 μ‹œμŠ€ν…œ b265eec88a6d1220eab75391bcf4f85bcd687301bfabfa3a2331217918c7377e: dd81b83c879f4bcef81 제거 μ‹€νŒ¨

μž₯μΉ˜κ°€ μ–΄λ”˜κ°€μ—μ„œ μ‚¬μš© μ€‘μž…λ‹ˆλ‹€. μ‹€νŒ¨ ν›„ λ‹€μŒ 슀크립트λ₯Ό μ‹œλ„ν•˜κ³  μž₯μΉ˜κ°€ μ‚¬μš© 쀑일 수 μžˆλŠ” μœ„μΉ˜λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆκΉŒ?

https://github.com/rhvgoyal/misc/blob/master/find-busy-mnt.sh

./find-busy-mnt.sh

./find-busy-mnt.sh dd81b82c875f4bcef819be83e9344c507965a9e9f48189f08c79fde5a9bde681

rlpowell@vrici> sudo bash /tmp/find-busy-mnt.sh b2205428f34a0d755e7eeaa73b778669189584977c17df2bf3c3bf46fe98be10
pidλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.
rlpowell@vrici> sudo 도컀 rm freq_build
데λͺ¬μ˜ Bus5abac8 였λ₯˜ 응닡: λ“œλΌμ΄λ²„ devicemapperκ°€ 루트 파일 μ‹œμŠ€ν…œ b2205428f34a0d755e7eeaa73b778669189584977c17df2bf3c3bf46fe98be10: μž₯치 5f1095868bbfe25λ₯Ό μ œκ±°ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

였, 그것은 잘λͺ»λœ ν•΄μ‹œμ˜€λ˜ 것 κ°™μŠ΅λ‹ˆλ‹€.

rlpowell@vrici> mount | grep b2205428f34a0d755e7eeaa73b778669189584977c17df2bf3c3bf46fe98be10
rlpowell@vrici> sudo bash /tmp/find-busy-mnt.sh 5f1095868bbfe85afccf392f6f4fbb8ed4bcfac88a5a8044bb122463b765956a
PID     NAME            MNTNS
12244   php-fpm         mnt:[4026532285]
12553   php-fpm         mnt:[4026532285]
12556   php-fpm         mnt:[4026532285]
12557   php-fpm         mnt:[4026532285]
12558   php-fpm         mnt:[4026532285]
rlpowell@vrici> pg php-fpm
rlpowell 25371 10518  0 00:43 pts/9    00:00:00  |           \_ grep --color=auto php-fpm
root     12244     1  0 00:08 ?        00:00:00 php-fpm: master process (/etc/php-fpm.conf)
apache   12553 12244  0 00:08 ?        00:00:00  \_ php-fpm: pool www
apache   12556 12244  0 00:08 ?        00:00:00  \_ php-fpm: pool www
apache   12557 12244  0 00:08 ?        00:00:00  \_ php-fpm: pool www
apache   12558 12244  0 00:08 ?        00:00:00  \_ php-fpm: pool www
rlpowell@vrici> sudo service php-fpm stop
Redirecting to /bin/systemctl stop  php-fpm.service
rlpowell@vrici> sudo bash /tmp/find-busy-mnt.sh 5f1095868bbfe85afccf392f6f4fbb8ed4bcfac88a5a8044bb122463b765956a
No pids found
rlpowell@vrici> sudo docker rm freq_build
freq_build

그것은 ... 맀우 μ΄μƒν•©λ‹ˆλ‹€. μ™œ μ™„μ „νžˆ 관련이 μ—†λŠ” php-fpm ν”„λ‘œμ„ΈμŠ€κ°€ ν•΄λ‹Ή 마운트λ₯Ό μ—΄λ¦° μƒνƒœλ‘œ μœ μ§€ν•˜κΈ° μœ„ν•΄ μ»€λ„μ—μ„œ λ³Ό 수 μžˆλŠ”μ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.

@rlpowell 예, 이것이 이 문제의 전체 λ¬Έμ œμž…λ‹ˆλ‹€. 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€κ°€ μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€ μ•ŠλŠ” λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

μ—¬κΈ°μ—μ„œ μž‘λ™ν•˜λŠ” ν•΄κ²° λ°©λ²•μœΌλ‘œ λ³΄μ΄λŠ” 것을 μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. http://blog.hashbangbash.com/2014/11/docker-devicemapper-fix-for-device-or-resource-busy-ebusy/

이것은 기본적으둜 systemd docker.service νŒŒμΌμ— λ‹€μŒ 쀄을 μΆ”κ°€ν•˜λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€.
MountFlags=λΉ„κ³΅κ°œ

이것은 적어도 배포 이후에 μˆ˜ν–‰ν•œ 도컀 μ‹€ν–‰μ˜ μž‘μ€ μƒ˜ν”Œμ—μ„œλŠ” μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 도컀λ₯Ό μ™„μ „νžˆ μ΄ν•΄ν•˜λŠ” μ‚¬λžŒμ΄ 이 ν”Œλž˜κ·Έμ˜ κ²°κ³Όλ₯Ό μ„€λͺ…ν•  수 μžˆλ‹€λ©΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€. 도컀가 μ‹œμž‘λœ ν›„ 마운트된 파일 μ‹œμŠ€ν…œμ΄ μ»¨ν…Œμ΄λ„ˆμ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€κ³  μƒκ°ν•˜μ§€λ§Œ μ†”μ§νžˆ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. 우리의 ꡬ성은 λΉŒλ“œ μ„œλ²„μ—μ„œ μ‚¬μš©ν•˜κΈ° μœ„ν•œ 것이며 μ œλŒ€λ‘œ μž‘λ™ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

이것은 κ½€ μ€‘μš”ν•œ 문제둜 Centos 7/RHELμ—μ„œ 도컀λ₯Ό 효과적으둜 μ‚¬μš©ν•  수 μ—†κ²Œ λ§Œλ“­λ‹ˆλ‹€. (그리고 4κ°œμ›” λ™μ•ˆ μ—΄λ € μžˆμŠ΅λ‹ˆκΉŒ?)
도착 μ˜ˆμ • μ‹œκ°„μ΄ μžˆμŠ΅λ‹ˆκΉŒ?

μ΅œμ‹  RHEL/centosλŠ” docker.service νŒŒμΌμ— MountFlags=slave와 ν•¨κ»˜ μ œκ³΅λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

@rhvgoyal 이것은 그렇지 μ•ŠμŠ΅λ‹ˆλ‹€: https://github.com/docker/docker/blob/master/contrib/init/systemd/docker.service.rpm

이것은 브랜치 λ§ˆμŠ€ν„°μ— μžˆμ§€λ§Œ 브랜치 1.13.x 및 17.03.x에도 μ—†μŠ΅λ‹ˆλ‹€.

λ‚΄κ°€ 말할 수 μžˆλŠ” ν•œ 이 ν”Œλž˜κ·ΈλŠ” 이전 μ„œλΉ„μŠ€ λ‹¨μœ„μ— μžˆμ—ˆμ§€λ§Œ μ œκ±°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ‚˜λŠ” κ·Έ 이유λ₯Ό 찾지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. 이 ν”Œλž˜κ·ΈλŠ” ν˜„μž¬ 문제λ₯Ό ν•΄κ²°ν•˜μ§€λ§Œ λ‹€λ₯Έ 문제λ₯Ό μΌμœΌν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

@rlpowell @SEAPUNK λ‚΄ μš°λΆ„νˆ¬ μ„€μΉ˜μ˜ κ²½μš°κ°€ μ•„λ‹Œ 것 κ°™μŠ΅λ‹ˆλ‹€.

$ docker rm test
Error response from daemon: Driver devicemapper failed to remove root filesystem f23064c71f22215f8cc7c7192488ab1bbb24693b36e07018b32d58292ee6ce47: Device is Busy
$ sudo ./find-busy-mnts.sh f23064c71f22215f8cc7c7192488ab1bbb24693b36e07018b32d58292ee6ce47
No pids found
$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
$ docker version
Client:
 Version:      1.13.1
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 06:50:14 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.13.1
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 06:50:14 2017
 OS/Arch:      linux/amd64
 Experimental: false
$ docker info
Containers: 17
 Running: 14
 Paused: 0
 Stopped: 3
Images: 148
Server Version: 1.13.1
Storage Driver: devicemapper
 Pool Name: ubuntu--vg-thinpool
 Pool Blocksize: 524.3 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: ext4
 Data file: 
 Metadata file: 
 Data Space Used: 29.3 GB
 Data Space Total: 386.5 GB
 Data Space Available: 357.2 GB
 Metadata Space Used: 16.97 MB
 Metadata Space Total: 4.295 GB
 Metadata Space Available: 4.278 GB
 Thin Pool Minimum Free Space: 38.65 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: true
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Library Version: 1.02.110 (2015-10-30)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1
runc version: 9df8b306d01f59d3a8029be411de015b7304dd8f
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-62-generic
Operating System: Ubuntu 16.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 15.56 GiB
Name: martin
ID: W4KC:COLM:3G33:I54E:PNUD:A5XX:TEBZ:VG43:BR62:JWCU:B44Y:DQWJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

RHEL7이 RHEL7.4κΉŒμ§€ --live-restoreλ₯Ό 지원할 수 μ—†λŠ” μ΄μœ μ™€ 도컀가 ν˜ΈμŠ€νŠΈκ°€ μ•„λ‹Œ λ‹€λ₯Έ 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€ λ‚΄μ—μ„œ μ‹€ν–‰λ˜μ–΄μ•Ό ν•˜λŠ” 이유λ₯Ό μ„€λͺ…ν•˜λŠ” 기사λ₯Ό μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

https://access.redhat.com/articles/2938171

+1 λ‹€λ₯Έ 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ μ‹€ν–‰ν•˜κ³  λͺ¨λ“  도컀 마운트λ₯Ό λΉ„κ³΅κ°œλ‘œ λ§Œλ“€κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.
ν•˜μ§€λ§Œ 거기에 μ•½κ°„μ˜ κΉŒλ‹€λ‘œμš΄ λΉ„νŠΈκ°€ μžˆμŠ΅λ‹ˆλ‹€.

μ—…μŠ€νŠΈλ¦Ό 도컀에 MountFlags=slave μ—μ„œ μ‹€ν–‰ν•˜κΈ° μœ„ν•œ μ μ ˆν•œ ν”Œλž˜κ·Έκ°€ μ—†λŠ” 경우 μ΄λŠ” 버그이며 μ»¨ν…Œμ΄λ„ˆμ™€ 호슀트 간에 λˆ„μΆœλ˜λŠ” 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€ 문제λ₯Ό μ‰½κ²Œ μœ λ°œν•˜κ³  μ»¨ν…Œμ΄λ„ˆ 이미지λ₯Ό μ œκ±°ν•˜λŠ” 데 λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

FWIW, Red Hat μœ μ§€ κ΄€λ¦¬μžκ°€ κ²€ν† ν•œ ν›„ MountFlags=slave κ°€ https://github.com/docker/docker/pull/22806 μ—μ„œ μ œκ±°λ˜μ—ˆμ§€λ§Œ 문제λ₯Ό μΌμœΌν‚€λŠ” 것 κ°™μœΌλ―€λ‘œ λ˜λŒλ €μ•Ό ν•˜λŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€. RHEL7.4κΉŒμ§€?

예, μš°λ¦¬λŠ” 그것을 μ œκ±°ν–ˆκ³  λ‚˜μ€‘μ— 문제λ₯Ό μΌμœΌμΌ°μŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ ν† λ‘  μŠ€λ ˆλ“œ 쀑 ν•˜λ‚˜μ—μ„œ μš°λ¦¬λŠ” 그것을 λ‹€μ‹œ λ„μž…ν•˜μžλŠ” 결둠을 λ‚΄λ ΈμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 당신이 이미 그것을 ν–ˆλ‹€κ³  μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€. μ–΄λ–€ μŠ€λ ˆλ“œμ˜€λŠ”μ§€ κΈ°μ–΅λ‚˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@thaJeztah 예, μš°λ¦¬κ°€ 잘λͺ» μ•Œκ³  μΆ”κ°€ 문제λ₯Ό λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€.

그리고 μ΄λŸ¬ν•œ λ¬Έμ œλŠ” 주둜 이전 μ»€λ„μ—λ§Œ ν•΄λ‹Ήλ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ΅œμ‹  컀널은 잘 μž‘λ™ν•©λ‹ˆλ‹€.

PR을 μ—΄μ–΄ μ˜΅μ…˜μ— λŒ€ν•΄ λ…Όμ˜ν•˜κ² μŠ΅λ‹ˆλ‹€.

μ—¬κΈ°μ—μ„œ PR을 μ—΄μ—ˆμŠ΅λ‹ˆλ‹€. https://github.com/docker/docker/pull/31490

λ™μΌν•œ 문제, docker 1.10.3, CentOS Linux 릴리슀 7.2.1511
dmesg:
[1732917.246900] device-mapper: ioctl: μ—΄λ € μžˆλŠ” μž₯치λ₯Ό μ œκ±°ν•  수 μ—†μŠ΅λ‹ˆλ‹€. docker-8:3-5242884-b3c2bfc1d52638ca89c5bd4c880ac1ca1b596e574bcda09042eaafef7486
λ©”μ‹œμ§€:
4μ›” 3일 03:32:34 A02-R05-I97-106 docker-current: time="2017-04-03T03:32:34.346374677+08:00" level=error2ceea4677+08:00" level=error31c0a4a msg="μž₯착된 λ ˆμ΄μ–΄ 제거 였λ₯˜ b0b1e839f366086f "
4μ›” 3일 03:32:34 A02-R05-I97-106 docker-current: time="2017-04-03T03:32:34.346597095+08:00" level=error msg="DELETE /v1.22/containers 처리기 /b0b1e839f366086fd7cff564feee385a3aed71a56db90e4c0416517a72c13f2d λ°˜ν™˜λœ 였λ₯˜: λ“œλΌμ΄λ²„ devicemapperκ°€ 루트 파일 μ‹œμŠ€ν…œ b0b1e839f366086fd7cff564fea5λ₯Ό μ œκ±°ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

μ‚°:
/proc/*/mounts μ°ΎκΈ° | xargs grep -E "5242884-b3c2bfc1d52638ca89c5bd4c880ac1ca1b596e574bcda09042eaafef74866f78"
은 / proc / 159,779 / 마운트 / λ””λ°”μ΄μŠ€ / 맀퍼 / κ³ μ • ν‘œμ‹œκΈ°-8-3-5242884 b3c2bfc1d52638ca89c5bd4c880ac1ca1b596e574bcda09042eaafef74866f78 / 수좜 / κ³ μ • ν‘œμ‹œκΈ° / devicemapper / MNT / b3c2bfc1d52638ca89c5bd4c880ac1ca1b596e574bcda09042eaafef74866f78 XFS RW, relatime μ˜΅μ…˜, nouuid, ATTR2, inode64, logbsize = 64K, sunit = 128 λ„ˆλΉ„=128, ν• λ‹ΉλŸ‰ μ—†μŒ 0 0
은 / proc / 159,806 / 마운트 / λ””λ°”μ΄μŠ€ / 맀퍼 / κ³ μ • ν‘œμ‹œκΈ°-8-3-5242884 b3c2bfc1d52638ca89c5bd4c880ac1ca1b596e574bcda09042eaafef74866f78 / 수좜 / κ³ μ • ν‘œμ‹œκΈ° / devicemapper / MNT / b3c2bfc1d52638ca89c5bd4c880ac1ca1b596e574bcda09042eaafef74866f78 XFS RW, relatime μ˜΅μ…˜, nouuid, ATTR2, inode64, logbsize = 64K, sunit = 128 λ„ˆλΉ„=128, ν• λ‹ΉλŸ‰ μ—†μŒ 0 0
μƒˆ μ»¨ν…Œμ΄λ„ˆ :
도컀 검사 8777d36c94ec|grep Pid
"ν”Όλ“œ": 159779,

//λ‚΄ 잘λͺ», ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€ 。

ID "8777d36c94ec"λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ? 이것은 μ œκ±°λ˜λŠ” μ»¨ν…Œμ΄λ„ˆμ˜ μ»¨ν…Œμ΄λ„ˆ IDμž…λ‹ˆκΉŒ μ•„λ‹ˆλ©΄ λ‹€λ₯Έ μ»¨ν…Œμ΄λ„ˆμž…λ‹ˆκΉŒ?

λ”°λΌμ„œ μž₯μΉ˜λŠ” μ—¬μ „νžˆ μ»¨ν…Œμ΄λ„ˆμ— νƒ‘μž¬λ˜μ–΄ μžˆμœΌλ―€λ‘œ μ‚¬μš© μ€‘μž…λ‹ˆλ‹€. λ”°λΌμ„œ μ œκ±°λ˜λŠ” μ»¨ν…Œμ΄λ„ˆ 쀑 ν•˜λ‚˜κ°€ 아직 μ€‘μ§€λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λ˜λŠ” λ‹€λ₯Έ μ»¨ν…Œμ΄λ„ˆμΈ 경우 λ‹€λ₯Έ μ»¨ν…Œμ΄λ„ˆμ—μ„œ 보이지 μ•Šμ•„μ•Ό ν•©λ‹ˆλ‹€.

마운트 지점 "/export/docker/devicemapper/mnt/...."κ°€ 무엇이며 λˆ„κ°€ μƒμ„±ν–ˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆκΉŒ?

λ‚΄ Mint μ‹œμŠ€ν…œμ—μ„œ 17.03.1~ce-0~ubuntu-xenial μ—μ„œ 17.04.0~ce-0~ubuntu-xenial 둜 μ—…κ·Έλ ˆμ΄λ“œν•˜λ©΄ 이 λ¬Έμ œκ°€ 맀우 자주 λ°œμƒν•©λ‹ˆλ‹€.

μ—…κ·Έλ ˆμ΄λ“œν•˜κΈ° 전에 λ‚˜λŠ” 그것을 λ§Œλ‚œ 적이 μ—†μŠ΅λ‹ˆλ‹€. μ—…κ·Έλ ˆμ΄λ“œ ν›„μ—λŠ” 맀우 λΉˆλ²ˆν–ˆμŠ΅λ‹ˆλ‹€. 17.03.1둜 λ‹€μ‹œ λ‹€μš΄ κ·Έλ ˆμ΄λ“œν•˜λ©΄ ν•΄κ²° 된 것 κ°™μŠ΅λ‹ˆλ‹€.

이 μŠ€λ ˆλ“œλ₯Ό μ½λŠ” λ‹€λ₯Έ μ‚¬λžŒλ“€μ„ μœ„ν•œ μ°Έκ³  μ‚¬ν•­μœΌλ‘œ Googleμ—μ„œ cAdvisorλ₯Ό μ‹€ν–‰ 쀑인 경우 μ»¨ν…Œμ΄λ„ˆλ₯Ό μ œκ±°ν•˜λ €κ³  ν•  λ•Œ 이 λ¬Έμ œκ°€ ν‘œμ‹œλ©λ‹ˆλ‹€. λ¨Όμ € cAdvisorλ₯Ό μ€‘μ§€ν•œ λ‹€μŒ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ œκ±°ν•œ λ‹€μŒ cAdvisorλ₯Ό λ‹€μ‹œ μ‹œμž‘ν•΄μ•Ό ν•©λ‹ˆλ‹€.

@bmbroom λ§ˆμ°¬κ°€μ§€ μž…λ‹ˆλ‹€. μš°λ¦¬λŠ” ν•˜λ£¨ 쒅일 μ»¨ν…Œμ΄λ„ˆλ₯Ό νœ˜μ “λŠ” μš°λΆ„νˆ¬ 기반 λΉŒλ“œ μ„œλ²„λ₯Ό μ‹€ν–‰ν•˜λ©°(보톡 docker-compose에 μ˜ν•΄ ꡬ동됨) 이 문제λ₯Ό 일주일에 두 번 λ³΄μ•˜μŠ΅λ‹ˆλ‹€. μ„œλ²„λŠ” μ‹ λ’°ν•  수 μžˆλŠ” μ„œλ²„μ™€ xenial μ„œλ²„κ°€ ν˜Όν•©λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μ΅œκ·Όμ— 17.04.0~ce둜 μ—…κ·Έλ ˆμ΄λ“œλ₯Ό μ‹œμž‘ν–ˆμœΌλ©° ν˜„μž¬ ν•˜λ£¨μ—λ„ μ—¬λŸ¬ 번 μ΄λŸ¬ν•œ 일이 λ°œμƒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

MountFlags=slaveκ°€ μš°λΆ„νˆ¬μ— 적용 κ°€λŠ₯ν•œμ§€ ν™•μ‹€ν•˜μ§€ μ•Šμ§€λ§Œ 그것이 λ‹€μŒμ— μ‹œλ„ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

@rhvgoyal
λ―Έμ•ˆν•˜λ‹€οΌŒλ‚΄ 잘λͺ»μ΄λ‹€γ€‚
λ‹€λ₯Έ μ‚¬λžŒλ“€μ€ μ—¬μ „νžˆ ​​내 μ»¨ν…Œμ΄λ„ˆμ— νƒ‘μž¬λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.。

λ‹€μŒμ—μ„œ λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

  • docker: Docker 버전 17.03.1-ce, λΉŒλ“œ c6d412e
  • os: Red Hat Enterprise Linux Server 릴리슀 7.3(Maipo)
  • 컀널: 3.10.0-514.6.1.el7.x86_64
  • ntpd: 4.2.6p5

systemctl restart ntpd μˆ˜ν–‰ν•˜λ©΄ λ¬Έμ œκ°€ μ¦‰μ‹œ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

@제였λ₯΄
docker.service λ‹¨μœ„ 파일 μ•ˆμ— μžˆλŠ” MountFlags λ¬΄μ—‡μž…λ‹ˆκΉŒ?

/usr/lib/systemd/system/docker.service νŒŒμΌμ— MountFlags κ°€ μ—†μ§€λ§Œ systemctl show docker λŠ” MountFlags=0 λ³΄μ—¬μ€λ‹ˆλ‹€.

ntpd.service λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€. λ˜ν•œ 것을 PrivateTmp=true μ„Έ μ΄ν•˜ [Service] D 자 (μžˆλŠ” 경우 κ·Έ 문제λ₯Ό).

μ§€κΈˆμ€ MountFlags=slave둜 μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.

@rhvgoyal이 λ‚΄ docker.service νŒŒμΌμ„ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ κ·€ν•˜μ˜ κ°€μΉ˜λŠ” 이미 μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

grep MountFlags /etc/systemd/system/multi-user.target.wants/docker.service
MountFlags=slave

μ΅œμ‹  redhat(3.10.0-514.16.1.el7)/docker(1.12.6-16.el7) μ‚¬μš©

MountFlags=privateλŠ” μ–΄λ–»μŠ΅λ‹ˆκΉŒ? 개인과 λ…Έμ˜ˆμ˜ 차이점을 μ„€λͺ…ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

ν˜„μž¬ RHEL/CentOS 7.3, 컀널 3.10.0-514.16.1.el7.x86_64, Docker 버전 17.05.0-ce, λΉŒλ“œ 89658beμ—μ„œ 이 문제λ₯Ό 보고 μžˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” μ§€λ‚œ 1λ…„ λ™μ•ˆ 이 문제λ₯Ό κ³„μ†ν•΄μ„œ λ³΄μ•„μ™”μŠ΅λ‹ˆλ‹€.

/etc/systemd/system/multi-user.target.wants/docker.service에도 MountFlags μ˜΅μ…˜μ΄ μ—†μŠ΅λ‹ˆλ‹€. 거기에 "MountFlags=slave"λ₯Ό μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆκΉŒ?

이 λ¬Έμ œκ°€ Centos, RHEL 및 Ubuntuμ—μ„œ λ°œμƒν•œλ‹€λŠ” 의견이 μžˆμŠ΅λ‹ˆλ‹€. Debianμ΄λ‚˜ ContainerLinux λ˜λŠ” SUSE와 같은 λ‹€λ₯Έ 운영 μ²΄μ œλŠ” 이 νŠΉμ • λ¬Έμ œλ‘œλΆ€ν„° μ•ˆμ „ν•©λ‹ˆκΉŒ?

@earwax μ΅œμ‹  컀널(>= 3.15)이 μžˆλŠ” λͺ¨λ“  것이 일반적으둜 더 잘 μž‘λ™ν•©λ‹ˆλ‹€.
κ·ΈλŸ¬λ‚˜ 이 였λ₯˜κ°€ λ°œμƒν•  수 μžˆλŠ” 상황은 항상 μžˆμŠ΅λ‹ˆλ‹€.
λ˜ν•œ, 이λ₯Ό μ™„ν™”ν•˜κΈ° μœ„ν•΄ μ—¬κΈ° 주석에 λͺ‡ 가지 방법이 λ‚˜μ—΄λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

SUSEμ—μ„œ 이 문제λ₯Ό λ³΄μ•˜μ§€λ§Œ ν•΄κ²° 방법을 찾을 수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€...λŒ€λΆ€λΆ„ κ³΅κΈ‰μžμ—μ„œ λ°œμƒν•˜λŠ” κ²ƒμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€: AZURE

dockerdλ₯Ό 1.12.6μ—μ„œ 17.05둜 μ—…λ°μ΄νŠΈν•  λ•Œλ„ 이 문제λ₯Ό λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  였래된 μ»¨ν…Œμ΄λ„ˆλŠ” '-f' 없이 μ‚­μ œν•  수 μ—†μŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ»¨ν…Œμ΄λ„ˆμ—λŠ” '--live-restore' ꡬ성이 있기 λ•Œλ¬Έμ— dockerdλ₯Ό μ—…λ°μ΄νŠΈν•  λ•Œ λͺ¨λ‘ μ€‘μ§€λ˜μ§€ μ•ŠλŠ” 곡톡 κΈ°λŠ₯이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 여기에 λ¬Έμ œκ°€ μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

이것은 참고둜 적어도 CentOS 7μ—μ„œλŠ” 17.06μ—μ„œ μ—¬μ „νžˆ λ¬Έμ œμž…λ‹ˆλ‹€.

@MGD1981 이 버그λ₯Ό μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€. μš°λ¦¬λŠ” centos 7을 λ™μΌν•˜κ²Œ μ‚¬μš©ν•˜κ³  있으며 dockerλ₯Ό μ—…λ°μ΄νŠΈν•˜κΈ° 전에 μƒμ„±λœ 이전 μ»¨ν…Œμ΄λ„ˆμ—λŠ” "μž₯μΉ˜κ°€ μ‚¬μš© 쀑" λ¬Έμ œκ°€ μžˆμ„ 뿐만 μ•„λ‹ˆλΌ μƒˆλ‘œ μƒμ„±λœ μ»¨ν…Œμ΄λ„ˆμ—λ„ λ¬Έμ œκ°€ μžˆλ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€. 이것은 정말 μ€‘μš”ν•©λ‹ˆλ‹€. , 그리고 docker.service에 "MountFlags=slave"λ₯Ό μΆ”κ°€ν•˜μ—¬ ν•΄κ²°ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이 λ§€κ°œλ³€μˆ˜κ°€ λ‹€λ₯Έ 문제λ₯Ό μΌμœΌν‚¬μ§€ μ—¬λΆ€λŠ” μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.

예, μ§€κΈˆ QA ν™˜κ²½μ—μ„œ 이것을 μ‹œλ„ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ„Έμ‹¬ν•œ 주의λ₯Ό 기울일 것
λ§ˆμš΄νŠΈμ—. μ»¨ν…Œμ΄λ„ˆμ˜ FSκ°€
이 섀정을 μ‚¬μš©ν•˜λ©΄ μ‹œκ°„μ΄ 지남에 따라 ν˜ΈμŠ€νŠΈκ°€ λ””μŠ€ν¬λ‘œ "μžŠν˜€μ§"
죽은 μ»¨ν…Œμ΄λ„ˆ?

2017λ…„ 7μ›” 3일 μ›”μš”μΌ μ˜€ν›„ 10μ‹œ 38λΆ„ KevinTHU [email protected]이(κ°€) μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

@MGD1981 https://github.com/mgd1981 이 버그λ₯Ό μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.
centos 7을 λ™μΌν•˜κ²Œ μ‚¬μš©ν•˜κ³  μš°λ¦¬λŠ” 였래된 μ»¨ν…Œμ΄λ„ˆλΏλ§Œ μ•„λ‹ˆλΌ
도컀λ₯Ό μ—…λ°μ΄νŠΈν•˜κΈ° 전에 μƒμ„±λœ "μž₯치 μ‚¬μš© 쀑" λ¬Έμ œκ°€ μžˆμ§€λ§Œ
μƒˆλ‘œ μƒμ„±λœ μ»¨ν…Œμ΄λ„ˆ, 이것은 정말 μ€‘μš”ν•˜λ©° λ‹€μŒκ³Ό 같이 ν•΄κ²°ν•©λ‹ˆλ‹€.
docker.service에 "MountFlags=slave"λ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μš°λ¦¬λŠ” 날씨λ₯Ό λͺ¨λ₯Έλ‹€
이 λ§€κ°œλ³€μˆ˜λŠ” λ‹€λ₯Έ 문제λ₯Ό κ°€μ Έμ˜¬ κ²ƒμž…λ‹ˆλ‹€.

β€”
당신이 μ–ΈκΈ‰λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ 확인
https://github.com/moby/moby/issues/27381#issuecomment-312766596 λ˜λŠ” μŒμ†Œκ±°
μŠ€λ ˆλ“œ
https://github.com/notifications/unsubscribe-auth/ADzZzStBbgubPK4soa2w5WW_hthYnZwjks5sKaW2gaJpZM4KW5Fn
.

@MGD1981 예, ν˜ΈμŠ€νŠΈμ— 더 이상 μ‚¬μš©λ˜μ§€ μ•ŠλŠ” λ””μŠ€ν¬κ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. #33025 μ°Έμ‘°

@ceecko 이것은 17.06λΆ€ν„° 더 이상 λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ§€μ—°λœ 제거/μ‚­μ œλ₯Ό ν™œμ„±ν™”ν•˜λ©΄ μ¦‰μ‹œ μ •λ¦¬λ˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

@cpuguy83 μ’‹μ•„μš” ! 이전 λ²„μ „μ—μ„œ 남겨둔 였래된 λ””μŠ€ν¬λ„ μ •λ¦¬ν•©λ‹ˆκΉŒ?

@cpuguy83 은 17.06이 아직 μΆœμ‹œλ˜μ—ˆλ‚˜μš”? (이미 7μ›”μ΄λ―€λ‘œ 17.07?) github 릴리슀 νŽ˜μ΄μ§€μ—μ„œ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.

@ravilr μ’…λ£Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ¦΄λ¦¬μŠ€λŠ” github.com/docker/docker-ceμ—μ„œ μ œκ³΅λ©λ‹ˆλ‹€.

@ceecko μ €λŠ” κ·Έλ ‡κ²Œ μƒκ°ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@cpuguy83 κ°μ‚¬ν•©λ‹ˆλ‹€. 17.06의 릴리슀 μ •λ³΄μ—λŠ” 이 λ¬Έμ œμ™€ κ΄€λ ¨λœ 사전 μˆ˜μ • 사항이 μ–ΈκΈ‰λ˜μ–΄ μžˆμ§€ μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€. 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ μˆ˜μ • 사항은 λ¬΄μ—‡μ΄μ—ˆμŠ΅λ‹ˆκΉŒ? λ‹€μ‹œ ν•œλ²ˆ κ°μ‚¬ν•©λ‹ˆλ‹€.

@ravilr 이 홍보 https://github.com/moby/moby/pull/31012

μ €λŠ” CentOS 7(가상 ν’€ μŠ€ν† λ¦¬μ§€ 포함)μ—μ„œ 17.06.0-ceλ₯Ό μ‹€ν–‰ 쀑이며 μ΅œκ·Όμ— 많이 λ°œμƒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

+ docker rm -f jenkins-build_rcc_testrun-1945
Error response from daemon: driver "devicemapper" failed to remove root filesystem for d626082dffb7c52fa8c012a2de3b113e431d1bdbc834084654051900e9482f23: failed to remove device 01c54a8701901f7fcb096e61b9028665df7f0596a0ad01d8ce0cd88215959d14: Device is Busy
Build step 'Execute shell' marked build as failure

MountFlags=slave , @AaronDMarasco-VSI κ°€ μžˆκ±°λ‚˜ μ—†λŠ” κ²ƒμž…λ‹ˆκΉŒ? μ„ΌνŠΈOS 7.3?

17.06은 근본적인 문제λ₯Ό ν•΄κ²°ν•˜μ§€ μ•Šκ³  μ²˜λ¦¬ν•˜λŠ” 것이 더 μ’‹μŠ΅λ‹ˆλ‹€.
문제λ₯Ό μ•…ν™”μ‹œν‚€λŠ” 도컀(λ˜λŠ” containerd와 같은 일뢀 ν•˜μœ„ κ΅¬μ„±μš”μ†Œ)κ°€ μˆ˜ν–‰ν•˜λŠ” μž‘μ—…μ΄ μžˆλŠ”μ§€ μ‚΄νŽ΄λ³΄κ³  μžˆμŠ΅λ‹ˆλ‹€.

@esabol μ•„λ‹ˆ... λΉ„κ³΅κ°œ?

docker.service.d$ cat * | grep -v '^#'
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --exec-opt native.cgroupdriver=cgroupfs --storage-driver devicemapper --storage-opt dm.fs=xfs --storage-opt dm.thinpooldev=/dev/mapper/vg_ex-docker--pool --storage-opt dm.use_deferred_removal=true

[Unit]
After=lvm2-lvmetad.socket lvm2-activation.service lvm2-lvmetad.service

[Service]
MountFlags=private

docker.service.d$ cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core) 

@AaronDMarasco-VSI, 상황을 κ°œμ„ ν•œ MountFlags=slave λ³€κ²½ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 아직 17.05이고 μ‚¬μš©ν•˜κ³  싢지 μ•Šμ€ 곳을 λ³Έ 것 κ°™μŠ΅λ‹ˆλ‹€. MountFlags=slave 와 dm.use_deferred_removal ? μ•„λ§ˆλ„ λ‹€λ₯Έ μ‚¬λžŒμ΄ λŒ“κΈ€μ„ 달고 확인할 κ²ƒμž…λ‹ˆλ‹€.

centos 7.3 및 컀널 4.10μ—μ„œ docker 17.03을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 그리고 λ‚˜λŠ”μ΄ 였λ₯˜λ₯Ό 많이 λ³΄μ•˜μŠ΅λ‹ˆλ‹€. μ•„λž˜λŠ” MountFlag에 λŒ€ν•œ λͺ‡ 가지 μžμ„Έν•œ λ‚΄μš©μž…λ‹ˆλ‹€.

# systemctl show docker | grep Private
PrivateTmp=no
PrivateNetwork=no
PrivateDevices=no
# systemctl show docker | grep Mount
MountFlags=0

μ—¬κΈ° Debian 8κ³Ό λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. CIκ°€ 깨지고 κ°€λŠ₯ν•œ ν•΄κ²° 방법이 μžˆμŠ΅λ‹ˆκΉŒ?

@thg303 κ°€λŠ₯ν•˜λ©΄ dockerdeamon을 μ’…λ£Œν•˜κ³  둜그 파일(rm /var/lib/docker/.....)μ—μ„œ λ°œμƒν•˜λŠ” 루트 파일 μ‹œμŠ€ν…œμ„ 정리/μ œκ±°ν•˜μ‹­μ‹œμ˜€. ν•˜μ§€λ§Œ κ·Έ 전에 μŠ€λƒ…μƒ·/백업을 ν•΄μ•Ό ν•©λ‹ˆλ‹€ :-)

Fedora 25, 컀널 4.11.12μ—μ„œλ„ λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€.

Containers: 5
 Running: 0
 Paused: 0
 Stopped: 5
Images: 16
Server Version: 17.06.0-ce
Storage Driver: devicemapper
 Pool Name: docker-253:2-5373989-pool
 Pool Blocksize: 65.54kB
 Base Device Size: 21.47GB
 Backing Filesystem: xfs
 Data file: /dev/loop1
 Metadata file: /dev/loop2
 Data Space Used: 59.33GB
 Data Space Total: 107.4GB
 Data Space Available: 48.05GB
 Metadata Space Used: 76.11MB
 Metadata Space Total: 2.147GB
 Metadata Space Available: 2.071GB
 Thin Pool Minimum Free Space: 10.74GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.136 (2016-11-05)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: cfb82a876ecc11b5ca0977d1733adbe58599088a
runc version: 2d41c047c83e09a6d61d464906feb2a2f3c52aa4
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.11.12-200.fc25.x86_64
Operating System: Fedora 25 (Workstation Edition)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.703GiB
Name: wayland
ID: 3T2X:CMFA:53Y2:27FL:RBMD:FHMH:32QE:2DKL:L256:O2GJ:LT2X:N4DD
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Http Proxy: http://127.0.0.1:8118/
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use.
         Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.

centos7μ—μ„œ 도컀가 μ—…λ°μ΄νŠΈλ  λ•Œλ§ˆλ‹€ 이 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 도컀λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜λ©΄ λͺ¨λ“  것이 잘 μž‘λ™ν•©λ‹ˆλ‹€.

Docker 17.06.0-ceκ°€ μžˆλŠ” Fedora 26μ—μ„œλ„ λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€. 도컀λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•΄λ„ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

$ systemctl show docker | grep Private
PrivateTmp=no
PrivateDevices=no
PrivateNetwork=no
PrivateUsers=no
$ systemctl show docker | grep Mount
MountFlags=0
MountAPIVFS=no

1년이 μ§€λ‚œ μ§€κΈˆ 이 버그가 μ—¬μ „νžˆ μ‘΄μž¬ν•©λ‹ˆκΉŒ?

@NeckBeardPrince 이런 λ¬΄μ˜λ―Έν•œ λŒ“κΈ€λ‘œ μ‹œκ°„λ‚­λΉ„ν•˜μ§€
문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 도움이 λ˜μ—ˆμœΌλ©΄ ν•©λ‹ˆλ‹€. λ¬Έμ œμ— λŒ€ν•œ μΆ”κ°€ 데이터λ₯Ό λ³΄κ³ ν•˜κ³  μ‹Άλ‹€λ©΄ μ’‹μŠ΅λ‹ˆλ‹€.

κ·Έ 외에도 여기에 κ²Œμ‹œλœ 이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” λͺ‡ 가지 방법이 μžˆμŠ΅λ‹ˆλ‹€.

systemd λ‹¨μœ„ νŒŒμΌμ€ MountFlags=slave 와 ν•¨κ»˜ μ œκ³΅λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

Server Version: 17.06.1-ce
CentOS Linux release 7.3.1611 (Core)

[root<strong i="7">@dokken</strong> /]# systemctl show docker | grep Private
PrivateTmp=no
PrivateNetwork=no
PrivateDevices=no
[root<strong i="8">@dokken</strong> /]# systemctl show docker | grep Mount
MountFlags=0

μ§€λ‚œλ²ˆμ— 이 λ¬Έμ œκ°€ λ°œμƒν–ˆμ„ λ•Œ 마운트λ₯Ό 작고 있던 것은 ntpd μ˜€μŠ΅λ‹ˆλ‹€.
μ˜€λŠ˜λ„ 같은 λ¬Έμ œκ°€ λ°œμƒν–ˆλŠ”λ° μ΄λ²ˆμ—λŠ” ν˜ΈμŠ€νŠΈμ—μ„œ μ‹€ν–‰ 쀑인 mariadb μΈμŠ€ν„΄μŠ€κ°€ μ›μΈμ΄μ—ˆμŠ΅λ‹ˆλ‹€.

  • docker-engine-17.05.0.ce-1.el7.centos.x86_64
  • mariadb-μ„œλ²„-5.5.56-2.el7.x86_64

마운트λ₯Ό λ“€κ³  μžˆλŠ” ν”„λ‘œμ‹œμ €λ₯Ό μ°ΎλŠ” 예....

# container with the problem
docker rm efad7...
Error response from daemon: Driver devicemapper failed to remove root filesystem efad7...: remove /var/lib/docker/devicemapper/mnt/9bd66290ee...: device or resource busy

# Grep after parts of the mountpoint
grep docker /proc/*/mountinfo | grep 9bd66290ee
/proc/9736/mountinfo:776 427 253:24 / /var/lib/docker/devicemapper/mnt/9bd66290e...
/proc/9910/mountinfo:776 427 253:24 / /var/lib/docker/devicemapper/mnt/9bd66290e...

# Find who the pid's belongs to
ps aux | grep -E "9736|9910"
mysql     9736  0.0... /usr/bin/mysqld_safe --basedir=/usr
mysql     9910  9.8 ... /usr/libexec/mysqld --base...

# Do some extra research on one of the pids
grep docker /proc/9736/mountinfo | wc -l
70

grep docker /proc/9736/mountinfo | grep -o "/run/docker/netns/" | wc -l
17

grep docker /proc/9736/mountinfo | grep -o "/var/lib/docker/containers/" | wc -l
18

grep docker /proc/9736/mountinfo | grep -o "/var/lib/docker/devicemapper/mnt/" | wc -l
33

mariadbλ₯Ό λ‹€μ‹œ μ‹œμž‘ν•œ ν›„ 마운트 포인트λ₯Ό ν•΄μ œν–ˆμ§€λ§Œ μ‹œμž‘ν•  λ•Œ 마운트 포인트λ₯Ό 많이 μž‘μ•˜μŠ΅λ‹ˆλ‹€.

grep docker /proc/16367/mountinfo | wc -l
52

λŒ€λΆ€λΆ„μ˜ 제거 μ‹€νŒ¨λŠ” 마운트 지점(λ”°λΌμ„œ device)이 λ‹€λ₯Έ 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ μ‚¬μš© 쀑이기 λ•Œλ¬Έμ— λ°œμƒν•©λ‹ˆλ‹€. 컀널이 μΆ©λΆ„νžˆ μƒˆλ‘­λ‹€λ©΄ μ œμ•ˆλœ PR을 λ”°λ₯΄λ©΄ 이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 도움이 될 것이라고 μƒκ°ν•©λ‹ˆλ‹€.

https://github.com/moby/moby/pull/34573

이전 컀널을 μ‹€ν–‰ 쀑인 경우 마운트 λˆ„μˆ˜ 문제λ₯Ό 쀄이기 μœ„ν•΄ ν”ŒλŸ¬κ·ΈμΈ 호좜 oci-umountλ₯Ό μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

https://github.com/projectatomic/oci-umount

@rhvgoyal 이 PR을 포함할 docker λ¦΄λ¦¬μŠ€μ— λŒ€ν•œ κ³„νšμ΄ μžˆμŠ΅λ‹ˆκΉŒ? μš°λ¦¬λŠ” μ—¬μ „νžˆ μ •κΈ°μ μœΌλ‘œ driver "devicemapper" failed to remove root filesystem λ₯Ό μ²˜λ¦¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

CentOS Linux 릴리슀 7.4.1708(μ½”μ–΄)
3.10.0-693.5.2.el7.x86_64
17.06.2-ce

λ§ˆμΉ¨λ‚΄ μˆ˜μ •λœ 것 κ°™μŠ΅λ‹ˆλ‹€

Docker 버전 17.09.0-ceλ₯Ό μ‹€ν–‰ 쀑이며 μ—¬μ „νžˆ λ™μΌν•œ λ¬Έμ œμ— μ§λ©΄ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

Oracle Linuxμ—μ„œ 이 λ¬Έμ œκ°€ 가끔 λ°œμƒν•©λ‹ˆλ‹€. docker 버전 17.03.1-ce(Oracle μ €μž₯μ†Œμ—μ„œ)

Linux server 4.1.12-103.3.8.1.el7uek.x86_64 #2 SMP Fri Sep 15 17:23:08 PDT 2017 x86_64 x86_64 x86_64 GNU/Linux

μœ„μ˜ λ‚΄μš©μ€ λͺ¨λ‘ ν”„λ‘œμ νŠΈμ˜ TDA에 μ˜ν•΄ μˆ˜μ •λ˜μ—ˆμœΌλ―€λ‘œ λ‹ΉλΆ„κ°„ λ³€κ²½ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

λ‹€λ₯Έ ν™˜κ²½μ˜ 90%λŠ” Centos 7.3/7.4이며 μ—¬κΈ°μ„œ λ¬Έμ œκ°€ λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

4.11.9의 μ•„μΉ˜ Linuxμ—μ„œ Docker 17.05둜 이 문제의 μΈμŠ€ν„΄μŠ€λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.
~에 μ˜ν•΄

  1. docker rm -f [myContainer] (ν‰μ†Œμ™€ 같이 driver "devicemapper" failed to remove root filesystem μ‹€νŒ¨)
  2. ls /var/lib/docker/devicemapper/mnt/

이둜 인해 μ»¨ν…Œμ΄λ„ˆκ°€ λ§ˆμΉ¨λ‚΄ μ‚¬λΌμ‘ŒμŠ΅λ‹ˆλ‹€(μ™œ κ·ΈλŸ°μ§€λŠ” ν™•μ‹€ν•˜μ§€ μ•ŠμŒ).

@MonsieurWaveκ°€ 보기 μ—λŠ” 믿기지 μ•Šμ„ 만큼, "ls" νŠΈλ¦­μ€ λ‹€λ₯Έ λͺ¨λ“  것이 μž‘λ™ν•˜μ§€ μ•Šμ•˜μ„ λ•Œ μ™„λ²½ν•˜κ²Œ μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€!

docker rm -f [container] λŠ” μ‹€νŒ¨λ₯Ό λ³΄κ³ ν•˜μ§€λ§Œ κ²°κ΅­μ—λŠ” μ»¨ν…Œμ΄λ„ˆμ™€ 파일 μ‹œμŠ€ν…œμ„ μ •λ¦¬ν•©λ‹ˆλ‹€. ls λͺ…령은 뢉은 μ²­μ–΄μ΄λ―€λ‘œ λͺ‡ 초만 기닀리면 λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 그보닀 더 λ‚˜μ€ 방법은 MountFlags=slave λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 그리고 κ°€μž₯ 쒋은 방법은 devicemapperλ₯Ό 끄고 λŒ€μ‹  overlay2λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

그리고 κ°€μž₯ 쒋은 방법은 devicemapperλ₯Ό 끄고 λŒ€μ‹  overlay2λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

μš°λ¦¬λŠ” 1λ…„ λ„˜κ²Œ CentOS 7.x(ν˜„μž¬ 7.4)μ—μ„œ Dockerλ₯Ό μ‚¬μš©ν•΄ μ™”μŠ΅λ‹ˆλ‹€. Dockerλ₯Ό 처음 μ„€μΉ˜ν–ˆμ„ λ•Œ λͺ¨λ“  μ‚¬λžŒμ€ 졜고의 μ„±λŠ₯κ³Ό μ•ˆμ •μ„±μ„ μœ„ν•΄ direct-lvmκ³Ό ν•¨κ»˜ devicemapperλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€κ³  λ§ν–ˆμŠ΅λ‹ˆλ‹€. https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/λŠ” μ—¬μ „νžˆ Docker EE와 ν•¨κ»˜ CentOSμ—μ„œ devicemapperλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€κ³  λ§ν•©λ‹ˆλ‹€. λ‹€ν–‰νžˆλ„ Docker CEλ₯Ό μ‚¬μš©ν•˜λ―€λ‘œ μ˜€λ²„λ ˆμ΄2둜 μ „ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Docker μ‚¬λžŒλ“€μ΄ v1.13.0/1μ—μ„œ CentOS의 devicemapperμ—μ„œ overlay2둜의 κΈ°λ³Έκ°’ 변경에 μ•½κ°„μ˜ 팑파λ₯΄λ‚˜ 토둠이 μžˆλŠ” κ²ƒμ²˜λŸΌ λŠκ»΄μ§‘λ‹ˆλ‹€. CentOS 7μ—μ„œ μ˜€λ²„λ ˆμ΄2 λŒ€ devicemapper(direct-lvm)의 μ„±λŠ₯/μ•ˆμ •μ„±μ— λŒ€ν•œ ν™•μ‹€ν•œ 정보가 μžˆμŠ΅λ‹ˆκΉŒ? λ‚΄ ꡬ글링은 많이 찾지 λͺ»ν–ˆλ‹€....

μš°λ¦¬λŠ” 재고 CentOS 7.2 컀널(3.10.x frankenstein)κ³Ό ν•¨κ»˜ μ•„μ£Ό λ‚˜μœ μ‹œκ°„μ„ λ³΄λƒˆμŠ΅λ‹ˆλ‹€. λ§Žμ€ 좩돌. μš°λ¦¬λŠ” 개발 ν™˜κ²½μ—μ„œ Kubernetesλ₯Ό μ‹€ν–‰ν•˜κ³  μžˆμ—ˆκΈ° λ•Œλ¬Έμ— μ»¨ν…Œμ΄λ„ˆ 변동이 맀우 λ†’μ•˜μ§€λ§Œ 비ꡐ적 μ‘°μš©ν•œ μ„€μΉ˜μ—μ„œλ„ κΈ°λ³Έ CentOS + μ˜€λ²„λ ˆμ΄ 콀보가 맀우 λΆˆμ•ˆμ •ν•˜λ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€. μ˜€λ²„λ ˆμ΄2둜 4.10+ μ—…μŠ€νŠΈλ¦Ό 컀널을 μ‹€ν–‰ν•˜λŠ” 것이 훨씬 μ’‹μŠ΅λ‹ˆλ‹€. μ΅œμ‹  CentOS 릴리슀λ₯Ό μ‹œλ„ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

ext4 λ˜λŠ” "-n ftype=1"둜 포맷된 XFS인 κΈ°λ³Έ 파일 μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. ν˜•μ‹μ΄ 잘λͺ»λœ XFSκ°€ μžˆλŠ” 경우 Dockerκ°€ μ‹€ν–‰λ˜μ§€λ§Œ κ²°κ³ΌλŠ” μ˜ˆμΈ‘ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

그래, λ‚˜λŠ” μ˜€λž«λ™μ•ˆ overlay2 둜 μ „ν™˜ν–ˆκ³  , 이 문제λ₯Ό μ œμ³λ‘κ³  devicemapperκ°€ 일반적으둜 docker에 λŒ€ν•œ 맀우 μ—΄μ•…ν•œ μŠ€ν† λ¦¬μ§€ λ“œλΌμ΄λ²„λΌλŠ” 것을 μ½μ—ˆκΈ° λ•Œλ¬Έμ— μ˜€λ²„λ ˆμ΄2

ntpdλ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜λ©΄ λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€... λ„ˆλ¬΄ ν˜Όλž€μŠ€λŸ½μŠ΅λ‹ˆλ‹€. Centos7의 도컀에 λŒ€ν•œ "ꢌμž₯" daemon.json ꡬ성이 μžˆμŠ΅λ‹ˆκΉŒ?

λͺ‡ 가지 κ°œμ„  사항이 νŒŒμ΄ν”„λΌμΈμ„ λ”°λΌμ˜€κ³  μžˆμŠ΅λ‹ˆλ‹€.

특히 μ΄λŸ¬ν•œ λ‹€λ₯Έ μ‹œμŠ€ν…œ μ„œλΉ„μŠ€μ˜ λ¬Έμ œλŠ” 마운트 λ„€μž„μŠ€νŽ˜μ΄μŠ€ μ„€μ •(λ‹€λ₯Έ μ‹œμŠ€ν…œ μ„œλΉ„μŠ€μš©)κ³Ό 자체 마운트λ₯Ό λΉ„κ³΅κ°œλ‘œ μœ μ§€ν•˜λ €λŠ” λ„μ»€μ˜ μ‹œλ„μ™€ 경쟁 쑰건인 κ²ƒμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€. μ»¨ν…Œμ΄λ„ˆ, λΆˆν–‰νžˆλ„ λ‹€λ₯Έ κ³³μ—μ„œ λˆ„μΆœμ„ μΌμœΌν‚€κ³  μ‹€μ œλ‘œ ν•΄λ‹Ή 마운트 지점에 λŒ€ν•œ 개인 μ°Έμ‘°λ₯Ό λ³΄μœ ν•˜κ²Œ λ˜λ―€λ‘œ μˆ˜λ™μœΌλ‘œ λ˜λŠ” ν”„λ‘œμ„ΈμŠ€κ°€ λ‹€μ‹œ μ‹œμž‘λ  λ•Œλ₯Ό μ œμ™Έν•˜κ³ λŠ” ν•΄λ‹Ή λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ 마운트 ν•΄μ œν•  수 μ—†μŠ΅λ‹ˆλ‹€.

λ˜ν•œ runc와 docker λͺ¨λ‘μ—μ„œ MS_PRIVATE 마운트 μ „νŒŒλ₯Ό μ‚¬μš©ν•˜μ—¬ 경쟁 쑰건을 μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ λͺ‡ 가지 졜근 λ³€κ²½ 사항이 μžˆμŠ΅λ‹ˆλ‹€.
λ‹€μŒ 버전은 μ™„λ²½ν• κΉŒμš”? μ•„λ§ˆ 아닐 κ²λ‹ˆλ‹€... ν•˜μ§€λ§Œ μ €λŠ” 이것이 더 λ‚˜μ•„μ§ˆ κ²ƒμœΌλ‘œ κΈ°λŒ€ν•©λ‹ˆλ‹€.

λ‚˜λŠ” docker 12.1.1을 μ‚¬μš©ν•˜μ—¬ @ceecko 와 λ˜‘κ°™μ€ 것을 μ–»μ—ˆμŠ΅λ‹ˆλ‹€. μ§€κΈˆ μ—…λ°μ΄νŠΈν•  κΈ°νšŒκ°€ μ—†μŠ΅λ‹ˆλ‹€. λ‚˜μ€‘μ— μ–΄λ”˜κ°€μ— μˆ˜μ •λ©λ‹ˆκΉŒ? λΉ λ₯Έ μˆ˜μ •μ€ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ’…λ£Œν•˜κ³  도컀 μ„œλΉ„μŠ€λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜λŠ” κ²ƒμ΄μ§€λ§Œ..

이 버전은 --live-restore ν¬ν•¨ν•˜μ—¬ 문제λ₯Ό μ™„μ „νžˆ ν•΄κ²°ν•©λ‹ˆλ‹€.

CentOS 7.4.1708 (3.10.0-693.5.2.el7.x86_64)
Docker 17.09.0-ce

@esabol CentOS 7.4둜 μ—…κ·Έλ ˆμ΄λ“œν•œ ν›„

μ°Έκ³ : docker info λŠ” 이 νŠΉμ • μ˜΅μ…˜ 없이 XFSλ₯Ό 톡해 μ˜€λ²„λ ˆμ΄2λ₯Ό μ‹€ν–‰ν•˜λŠ” 것은 μ§€μ›λ˜μ§€ μ•ŠμœΌλ©° ν–₯ν›„ λ¦΄λ¦¬μŠ€μ—μ„œ 제거될 κ²ƒμ΄λΌλŠ” 큰 κ²½κ³ λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.

https://github.com/moby/moby/pull/34573 μˆ˜μ • 사항이 17.09.1-ce, 17.12.0-ce λ²„μ „μ—μ„œ 릴리슀됨

@jcberthon μš°λ¦¬λŠ” μ΅œκ·Όμ— μ΄μ•Œμ„ docker run --rm ν•˜λŠ” λ‹¨μœ„ ν…ŒμŠ€νŠΈμ˜ λ²€μΉ˜λ§ˆν¬μ—μ„œ μ„±λŠ₯이 40% ν–₯μƒλ˜μ—ˆμŠ΅λ‹ˆλ‹€. devmapperλ₯Ό μœ„ν•œ λ§ˆμ§€λ§‰ λΉ¨λŒ€λŠ” 문제 #20401μ΄μ—ˆμŠ΅λ‹ˆλ‹€. μ˜€λ²„λ ˆμ΄2둜 μ „ν™˜ν•˜λŠ” 것은 그리 어렡지 μ•Šμ•˜μ§€λ§Œ λ””μŠ€ν¬ μ—¬μœ  곡간이 μΆ©λΆ„ν•©λ‹ˆλ‹€. μ €λŠ” docker save λͺ¨λ“  이미지λ₯Ό tarball둜, 또 λ‹€λ₯Έ 슀크립트λ₯Ό docker load λͺ¨λ“  tarball에 μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” 2-3μ‹œκ°„ λ§Œμ— 끝났닀. 번거둭고 λ””μŠ€ν¬ 곡간이 μΆ©λΆ„ν•˜μ§€ μ•Šμ€ κ²½μš°μ— κ°€λŠ₯ν•˜μ§€λ§Œ μž₯기적으둜 λ³Ό λ•Œ κ°€μΉ˜κ°€ μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. ν–‰μš΄μ„ λΉ•λ‹ˆλ‹€!

이것은 17.12.1μ—μ„œ μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€.

μˆ˜μ • 릴리슀 전에 물리적 λ…Έλ“œλ₯Ό μž¬λΆ€νŒ…ν•˜λ©΄ λ¬Έμ œκ°€ ν•΄κ²°λ©λ‹ˆλ‹€.

@ravilr @KevinTHU κ·€ν•˜μ˜ μ˜κ²¬μ— λŒ€ν•΄ https://github.com/moby/moby/issues/27381#issuecomment -277148106 및 https://github.com/moby/moby/issues/27381#issuecomment -267547259 κ΄€μ°°ν–ˆμŠ΅λ‹ˆλ‹€. RHEL의 도컀 μœ λ‹› νŒŒμΌμ„ PrivateTmp=true 둜 λ³€κ²½ν•˜λ©΄ λ¬Έμ œλ„ ν•΄κ²°λ©λ‹ˆλ‹€. λΉ„μŠ·ν•œ 것을 λ³Έ 적이 μžˆμŠ΅λ‹ˆκΉŒ?

@MohdAhmad λŠ”

λ‚˜λŠ” 같은 문제λ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€. 폴더λ₯Ό μ—΄μ—ˆμœΌλ‹ˆκΉŒ 창을 λ‹«μ•„μ„œ ν•΄κ²°ν•˜μ„Έμš”.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰