为什么在启动时以静默方式删除Docker容器

问题描述

我正在尝试使用testcontainers库运行用Java编写的集成测试。

  • 操作系统:macOS Catalina 10.15.6
  • Docker引擎:19.03.13
  • Docker桌面:2.4.0.0
  • 测试容器版本:1.14.3
  • Java:8

此库运行Ryuk Docker容器,负责在测试执行后清理Docker资源。基本上,库会创建Ryuk容器,然后启动它。但是,当库尝试启动Ryuk时,它会被静默删除。上次Docker桌面升级后出现此问题。 似乎Docker本身出于某种原因拒绝了该容器,因为没有API调用可以根据日志将其杀死。 您能帮我解决这个问题吗?

Docker容器检查输出:

[
    {
        "Id": "81ff589cf8993fa7d20bbab0f3817d2ef9eeeb81994ee1c9bddcb0d947605084","Created": "2020-10-08T13:57:32.805356662Z","Path": "/app","Args": [],"State": {
            "Status": "created","Running": false,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 0,"ExitCode": 0,"Error": "","StartedAt": "0001-01-01T00:00:00Z","FinishedAt": "0001-01-01T00:00:00Z"
        },"Image": "sha256:344c0229fe447209d01c388035dfe01ca38f5289d99c7e14febbcb9a0b128775","ResolvConfPath": "","HostnamePath": "","HostsPath": "","LogPath": "","Name": "/testcontainers-ryuk-4b282143-1305-44c2-9fc2-2bd323a2bd67","RestartCount": 0,"Driver": "overlay2","Platform": "linux","MountLabel": "","ProcessLabel": "","AppArmorProfile": "","HostConfig": {
            "Binds": [
                "/host_mnt/Users/rastiehaiev/Library/Containers/com.docker.docker/Data/docker.sock:/var/run/docker.sock:rw"
            ],"ContainerIDFile": "","LogConfig": {
                "Type": "json-file","Config": {}
            },"NetworkMode": "default","PortBindings": null,"RestartPolicy": {
                "Name": "","MaximumRetryCount": 0
            },"AutoRemove": true,"VolumeDriver": "","IpcMode": "private","Cgroup": "","OomScoreAdj": 0,"PidMode": "","Privileged": false,"PublishAllPorts": true,"ReadonlyRootfs": false,"UTSMode": "","UsernsMode": "","ShmSize": 67108864,"Runtime": "runc","ConsoleSize": [
                0,0
            ],"Isolation": "","CpuShares": 0,"Memory": 0,"NanoCpus": 0,"CgroupParent": "","BlkioWeight": 0,"CpuPeriod": 0,"CpuQuota": 0,"CpuRealtimePeriod": 0,"CpuRealtimeRuntime": 0,"CpusetCpus": "","CpusetMems": "","Devices": null,"KernelMemory": 0,"KernelMemoryTCP": 0,"MemoryReservation": 0,"MemorySwap": 0,"OomKillDisable": false,"PidsLimit": null,"Ulimits": null,"CpuCount": 0,"CpuPercent": 0,"IOMaximumIOps": 0,"IOMaximumBandwidth": 0,"MaskedPaths": [
                "/proc/asound","/proc/acpi","/proc/kcore","/proc/keys","/proc/latency_stats","/proc/timer_list","/proc/timer_stats","/proc/sched_debug","/proc/scsi","/sys/firmware"
            ],"ReadonlyPaths": [
                "/proc/bus","/proc/fs","/proc/irq","/proc/sys","/proc/sysrq-trigger"
            ]
        },"GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/2e9bdf84768ed5272c48f93a70c09341f789631edaf7b94f19a2117d767b2399-init/diff:/var/lib/docker/overlay2/3b560fdd2209c4a289be85aedb65399b08da026f21672efeb0951196d3748c77/diff:/var/lib/docker/overlay2/ac331eaaf59d9d135c1442f285cc4553658851fec751c492890efb693885375f/diff:/var/lib/docker/overlay2/9170a14e2be39e10fe11b9411e37a4672bed6b14c295a8ad4b8fbb7c9705935b/diff","MergedDir": "/var/lib/docker/overlay2/2e9bdf84768ed5272c48f93a70c09341f789631edaf7b94f19a2117d767b2399/merged","UpperDir": "/var/lib/docker/overlay2/2e9bdf84768ed5272c48f93a70c09341f789631edaf7b94f19a2117d767b2399/diff","WorkDir": "/var/lib/docker/overlay2/2e9bdf84768ed5272c48f93a70c09341f789631edaf7b94f19a2117d767b2399/work"
            },"Name": "overlay2"
        },"Mounts": [
            {
                "Type": "bind","Source": "/host_mnt/Users/rastiehaiev/Library/Containers/com.docker.docker/Data/docker.sock","Destination": "/var/run/docker.sock","Mode": "rw","RW": true,"Propagation": "rprivate"
            }
        ],"Config": {
            "Hostname": "81ff589cf899","Domainname": "","User": "","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"ExposedPorts": {
                "8080/tcp": {}
            },"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],"Cmd": [
                "/app"
            ],"Image": "testcontainersofficial/ryuk:0.3.0","Volumes": null,"WorkingDir": "","Entrypoint": null,"OnBuild": null,"Labels": {
                "desktop.docker.io/binds/0/Source": "//var/run/docker.sock","desktop.docker.io/binds/0/SourceKind": "hostFile","desktop.docker.io/binds/0/Target": "/var/run/docker.sock","org.testcontainers": "true"
            }
        },"NetworkSettings": {
            "Bridge": "","SandboxID": "","HairpinMode": false,"LinkLocalIPv6Address": "","LinkLocalIPv6PrefixLen": 0,"Ports": {},"SandboxKey": "","SecondaryIPAddresses": null,"SecondaryIPv6Addresses": null,"EndpointID": "","Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"IPAddress": "","IPPrefixLen": 0,"IPv6Gateway": "","MacAddress": "","Networks": {
                "bridge": {
                    "IPAMConfig": null,"Links": null,"Aliases": null,"NetworkID": "","DriverOpts": null
                }
            }
        }
    }
]

Docker系统日志:

2020-10-08T14:16:40Z dockerd time="2020-10-08T14:16:40.806579359Z" level=debug msg="Calling GET /images/json?filter=testcontainersofficial%2Fryuk%3A0.3.0"
2020-10-08T14:16:41Z dockerd time="2020-10-08T14:16:41.184803499Z" level=debug msg="Calling POST /containers/create?name=testcontainers-ryuk-c2b76bfe-5e08-42df-836b-291c0aa4e898"
2020-10-08T14:16:41Z dockerd time="2020-10-08T14:16:41.185381040Z" level=debug msg="form data: {\"AttachStderr\":false,\"AttachStdin\":false,\"AttachStdout\":false,\"Cmd\":null,\"Domainname\":\"\",\"Entrypoint\":null,\"En
v\":null,\"ExposedPorts\":{\"8080/tcp\":{}},\"HostConfig\":{\"AutoRemove\":true,\"Binds\":[\"/host_mnt/Users/rastiehaiev/Library/Containers/com.docker.docker/Data/docker.sock:/var/run/docker.sock:rw\"],\"BlkioDeviceReadBp
s\":null,\"BlkioDeviceReadIOps\":null,\"BlkioDeviceWriteBps\":null,\"BlkioDeviceWriteIOps\":null,\"BlkioWeight\":0,\"BlkioWeightDevice\":null,\"CapAdd\":null,\"CapDrop\":null,\"Capabilities\":null,\"Cgroup\":\"\",\"Cgroup
Parent\":\"\",\"ConsoleSize\":[0,0],\"ContainerIDFile\":\"\",\"CpuCount\":0,\"CpuPercent\":0,\"CpuPeriod\":0,\"CpuQuota\":0,\"CpuRealtimePeriod\":0,\"CpuRealtimeRuntime\":0,\"CpuShares\":0,\"CpusetCpus\":\"\",\"CpusetMems
\":\"\",\"DeviceCgroupRules\":null,\"DeviceRequests\":null,\"Devices\":null,\"Dns\":null,\"DnsOptions\":null,\"DnsSearch\":null,\"ExtraHosts\":null,\"GroupAdd\":null,\"I
2020-10-08T14:16:41Z dockerd time="2020-10-08T14:16:41.203874397Z" level=debug msg="container mounted via layerStore: &{/var/lib/docker/overlay2/29307b0b1c8ab639ae287dd9c0bff4b550acab017dcac6bc1032f18783df72b7/merged 0x3d
7bfa0 0x3d7bfa0}"
2020-10-08T14:16:42Z dockerd time="2020-10-08T14:16:42.561989090Z" level=debug msg="Calling GET /system/df"
2020-10-08T14:16:42Z dockerd time="2020-10-08T14:16:42.563161207Z" level=debug msg="Calling GET /system/df"
2020-10-08T14:16:42Z dockerd time="2020-10-08T14:16:42.563279476Z" level=debug msg="FIXME: Got an API for which error does not match any expected type!!!: a disk usage operation is already running" error_type="*errors.err
orString" module=api
2020-10-08T14:16:42Z dockerd time="2020-10-08T14:16:42.563297884Z" level=error msg="Handler for GET /system/df returned error: a disk usage operation is already running"
2020-10-08T14:16:42Z dockerd time="2020-10-08T14:16:42.563313704Z" level=debug msg="FIXME: Got an API for which error does not match any expected type!!!: a disk usage operation is already running" error_type="*errors.err
orString" module=api
2020-10-08T14:16:42Z dockerd time="2020-10-08T14:16:42.577472479Z" level=debug msg=VolumeStore.Find ByType=service.andCombinator ByValue="[[local] 0x1645e10]"
2020-10-08T14:17:39Z dockerd time="2020-10-08T14:17:39.671947023Z" level=debug msg="Calling GET /v1.40/containers/json?all=1"
2020-10-08T14:17:48Z dockerd time="2020-10-08T14:17:48.043005587Z" level=debug msg="Calling GET /v1.40/containers/148a8fa42878/json"
2020-10-08T14:17:48Z dockerd time="2020-10-08T14:17:48.047243534Z" level=debug msg="begin logs" container=148a8fa428782b45e7b36517c80754571e2c3be8ca70e2fce82da4aa1a94a7bd method="(*Daemon).ContainerLogs" module=daemon
2020-10-08T14:17:48Z dockerd time="2020-10-08T14:17:48.047349685Z" level=debug msg="end logs (<nil>)" container=148a8fa428782b45e7b36517c80754571e2c3be8ca70e2fce82da4aa1a94a7bd method="(*Daemon).ContainerLogs" module=daem
on
2020-10-08T14:17:51Z dockerd time="2020-10-08T14:17:51.311935105Z" level=debug msg="Calling GET /v1.40/containers/148a8fa42878/json"
2020-10-08T14:18:26Z dockerd time="2020-10-08T14:18:26.969481521Z" level=debug msg="Calling POST /containers/148a8fa428782b45e7b36517c80754571e2c3be8ca70e2fce82da4aa1a94a7bd/start"
2020-10-08T14:18:26Z dockerd time="2020-10-08T14:18:26.969628004Z" level=debug msg="form data: null"
2020-10-08T14:18:26Z dockerd time="2020-10-08T14:18:26.971413387Z" level=debug msg="container mounted via layerStore: &{/var/lib/docker/overlay2/29307b0b1c8ab639ae287dd9c0bff4b550acab017dcac6bc1032f18783df72b7/merged 0x3d7bfa0 0x3d7bfa0}"
2020-10-08T14:18:26Z dockerd time="2020-10-08T14:18:26.972286209Z" level=debug msg="Assigning addresses for endpoint testcontainers-ryuk-c2b76bfe-5e08-42df-836b-291c0aa4e898's interface on network bridge"
2020-10-08T14:18:26Z dockerd time="2020-10-08T14:18:26.972347128Z" level=debug msg="RequestAddress(LocalDefault/172.17.0.0/16,<nil>,map[])"
2020-10-08T14:18:26Z dockerd time="2020-10-08T14:18:26.972393433Z" level=debug msg="Request address PoolID:172.17.0.0/16 App: ipam/default/data,ID: LocalDefault/172.17.0.0/16,DBIndex: 0x0,Bits: 65536,Unselected: 65533,Sequence: (0xc0000000,1)->(0x0,2046)->(0x1,1)->end Curr:3 Serial:false PrefAddress:<nil> "
2020-10-08T14:18:26Z dockerd time="2020-10-08T14:18:26.985619161Z" level=debug msg="Assigning addresses for endpoint testcontainers-ryuk-c2b76bfe-5e08-42df-836b-291c0aa4e898's interface on network bridge"
2020-10-08T14:18:26Z dockerd time="2020-10-08T14:18:26.992776451Z" level=debug msg="Programming external connectivity on endpoint testcontainers-ryuk-c2b76bfe-5e08-42df-836b-291c0aa4e898 (744cfc348c7ebb7f4f37ff1d15a810cf925118eb18b813e4b079a8628b52e2ac)"
2020-10-08T14:18:26Z dockerd time="2020-10-08T14:18:26.993013144Z" level=debug msg="/sbin/iptables,[--wait -t nat -C DOCKER -p tcp -d 0/0 --dport 32772 -j DNAT --to-destination 172.17.0.2:8080 ! -i docker0]"
2020-10-08T14:18:26Z dockerd time="2020-10-08T14:18:26.997955746Z" level=debug msg="/sbin/iptables,[--wait -t nat -A DOCKER -p tcp -d 0/0 --dport 32772 -j DNAT --to-destination 172.17.0.2:8080 ! -i docker0]"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.003525652Z" level=debug msg="/sbin/iptables,[--wait -t filter -C DOCKER ! -i docker0 -o docker0 -p tcp -d 172.17.0.2 --dport 8080 -j ACCEPT]"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.008125887Z" level=debug msg="/sbin/iptables,[--wait -t filter -A DOCKER ! -i docker0 -o docker0 -p tcp -d 172.17.0.2 --dport 8080 -j ACCEPT]"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.011248735Z" level=debug msg="/sbin/iptables,[--wait -t nat -C POSTROUTING -p tcp -s 172.17.0.2 -d 172.17.0.2 --dport 8080 -j MASQUERADE]"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.014453984Z" level=debug msg="/sbin/iptables,[--wait -t nat -A POSTROUTING -p tcp -s 172.17.0.2 -d 172.17.0.2 --dport 8080 -j MASQUERADE]"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.026974404Z" level=debug msg="EnableService 148a8fa428782b45e7b36517c80754571e2c3be8ca70e2fce82da4aa1a94a7bd START"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.027030926Z" level=debug msg="EnableService 148a8fa428782b45e7b36517c80754571e2c3be8ca70e2fce82da4aa1a94a7bd DONE"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.035386163Z" level=debug msg="bundle dir created" bundle=/var/run/docker/containerd/148a8fa428782b45e7b36517c80754571e2c3be8ca70e2fce82da4aa1a94a7bd module=libcontainerd namespace=moby root=/var/lib/docker/overlay2/29307b0b1c8ab639ae287dd9c0bff4b550acab017dcac6bc1032f18783df72b7/merged
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.280445659Z" level=debug msg="sandbox set key processing took 100.216398ms for container 148a8fa428782b45e7b36517c80754571e2c3be8ca70e2fce82da4aa1a94a7bd"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.328718866Z" level=debug msg=event module=libcontainerd namespace=moby topic=/tasks/create
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.346374052Z" level=debug msg=event module=libcontainerd namespace=moby topic=/tasks/start
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.361502145Z" level=debug msg="Calling GET /containers/148a8fa428782b45e7b36517c80754571e2c3be8ca70e2fce82da4aa1a94a7bd/json"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.382404528Z" level=debug msg="Calling GET /containers/148a8fa428782b45e7b36517c80754571e2c3be8ca70e2fce82da4aa1a94a7bd/logs?stdout=true&stderr=true&follow=true&since=0"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.382552355Z" level=debug msg="begin logs" container=148a8fa428782b45e7b36517c80754571e2c3be8ca70e2fce82da4aa1a94a7bd method="(*Daemon).ContainerLogs" module=daemon
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.479073054Z" level=debug msg=event module=libcontainerd namespace=moby topic=/tasks/exit
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.546231426Z" level=debug msg=event module=libcontainerd namespace=moby topic=/tasks/delete
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.546316079Z" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.548362903Z" level=debug msg="Revoking external connectivity on endpoint testcontainers-ryuk-c2b76bfe-5e08-42df-836b-291c0aa4e898 (744cfc348c7ebb7f4f37ff1d15a810cf925118eb18b813e4b079a8628b52e2ac)"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.553270608Z" level=debug msg="end logs (<nil>)" container=148a8fa428782b45e7b36517c80754571e2c3be8ca70e2fce82da4aa1a94a7bd method="(*Daemon).ContainerLogs" module=daemon
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.561062325Z" level=debug msg="/sbin/iptables,[--wait -t nat -C DOCKER -p tcp -d 0/0 --dport 32772 -j DNAT --to-destination 172.17.0.2:8080 ! -i docker0]"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.565495319Z" level=debug msg="/sbin/iptables,[--wait -t nat -D DOCKER -p tcp -d 0/0 --dport 32772 -j DNAT --to-destination 172.17.0.2:8080 ! -i docker0]"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.569612079Z" level=debug msg="/sbin/iptables,[--wait -t filter -C DOCKER ! -i docker0 -o docker0 -p tcp -d 172.17.0.2 --dport 8080 -j ACCEPT]"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.571538278Z" level=debug msg="/sbin/iptables,[--wait -t filter -D DOCKER ! -i docker0 -o docker0 -p tcp -d 172.17.0.2 --dport 8080 -j ACCEPT]"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.573748296Z" level=debug msg="/sbin/iptables,[--wait -t nat -C POSTROUTING -p tcp -s 172.17.0.2 -d 172.17.0.2 --dport 8080 -j MASQUERADE]"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.576092480Z" level=debug msg="/sbin/iptables,[--wait -t nat -D POSTROUTING -p tcp -s 172.17.0.2 -d 172.17.0.2 --dport 8080 -j MASQUERADE]"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.580308290Z" level=debug msg="DeleteConntrackEntries purged ipv4:0,ipv6:0"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.637531876Z" level=debug msg="Releasing addresses for endpoint testcontainers-ryuk-c2b76bfe-5e08-42df-836b-291c0aa4e898's interface on network bridge"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.637597509Z" level=debug msg="ReleaseAddress(LocalDefault/172.17.0.0/16,172.17.0.2)"
2020-10-08T14:18:27Z dockerd time="2020-10-08T14:18:27.637656795Z" level=debug msg="Released address PoolID:LocalDefault/172.17.0.0/16,Address:172.17.0.2 Sequence:App: ipam/default/data,Unselected: 65532,Sequence: (0xe0000000,1)->end Curr:3"
2020-10-08T14:18:28Z dockerd time="2020-10-08T14:18:28.348463529Z" level=debug msg="Calling GET /system/df"
2020-10-08T14:18:28Z dockerd time="2020-10-08T14:18:28.349304690Z" level=debug msg="Calling GET /system/df"
2020-10-08T14:18:28Z dockerd time="2020-10-08T14:18:28.349587379Z" level=debug msg="FIXME: Got an API for which error does not match any expected type!!!: a disk usage operation is already running" error_type="*errors.errorString" module=api
2020-10-08T14:18:28Z dockerd time="2020-10-08T14:18:28.349765737Z" level=error msg="Handler for GET /system/df returned error: a disk usage operation is already running"
2020-10-08T14:18:28Z dockerd time="2020-10-08T14:18:28.349801648Z" level=debug msg="FIXME: Got an API for which error does not match any expected type!!!: a disk usage operation is already running" error_type="*errors.errorString" module=api
2020-10-08T14:18:28Z dockerd time="2020-10-08T14:18:28.359533134Z" level=debug msg=VolumeStore.Find ByType=service.andCombinator ByValue="[[local] 0x1645e10]"

解决方法

这是一个已知的问题#3166,就像Vitaly Chura所说的那样,它已在1.15.0-rc2版本中修复。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...