Docker – 无法启动容器:id已在使用中(重启后)

前端之家收集整理的这篇文章主要介绍了Docker – 无法启动容器:id已在使用中(重启后)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在运行几个docker容器,重启=总是在Ubuntu 18.04.1 LTS上.物理服务器每天凌晨2点重启,通过cronjob执行重启.

到目前为止,我在运行该特定设置的过去5或6个月内没有遇到任何问题.

但是今天,每天重启后容器没有启动. docker ps的输出为空,所有容器都处于“退出”状态.

为什么会突然发生这种情况?我的设置从一开始就配置错误,或者最近的docker-ce包升级是否起作用?

以下是重启之前和之后的日志以及docker.service单元和版本信息:

  1. root@skprov2:~# journalctl -b -1 -x -u docker
  2. Nov 15 02:00:02 skprov2 systemd[1]: Stopping Docker Application Container Engine...
  3. -- Subject: Unit docker.service has begun shutting down
  4. -- Defined-By: systemd
  5. -- Support: http://www.ubuntu.com/support
  6. --
  7. -- Unit docker.service has begun shutting down.
  8. Nov 15 02:00:02 skprov2 dockerd[1504]: time="2018-11-15T02:00:02.189764841+01:00" level=info msg="Processing signal 'terminated'"
  9. Nov 15 02:00:02 skprov2 dockerd[1504]: time="2018-11-15T02:00:02.595098434+01:00" level=info msg="shim reaped" id=c929d444a6eb59a69a0da738ca782a9feb92ac1f80e5c4576bf85376c3d4c17a
  10. Nov 15 02:00:02 skprov2 dockerd[1504]: time="2018-11-15T02:00:02.601217756+01:00" level=info msg="shim reaped" id=98a8c1b99cf986e6a889474f0fc28fe3635e466b21f8a37ef3c10a1050495c78
  11. Nov 15 02:00:02 skprov2 dockerd[1504]: time="2018-11-15T02:00:02.604880385+01:00" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
  12. Nov 15 02:00:02 skprov2 dockerd[1504]: time="2018-11-15T02:00:02.670918937+01:00" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
  13. Nov 15 02:00:02 skprov2 dockerd[1504]: time="2018-11-15T02:00:02.732991633+01:00" level=info msg="shim reaped" id=9b3badc752786df08d00138c0222042a6bd80bb2c971f5a96b71e57105cea95c
  14. Nov 15 02:00:02 skprov2 dockerd[1504]: time="2018-11-15T02:00:02.748732351+01:00" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
  15. Nov 15 02:00:02 skprov2 dockerd[1504]: time="2018-11-15T02:00:02.843982385+01:00" level=info msg="shim reaped" id=ae7531405113db8b4754491a12c2ababf09fa0c8f501bfe6f1b33e3ff18b6462
  16. Nov 15 02:00:02 skprov2 dockerd[1504]: time="2018-11-15T02:00:02.869023019+01:00" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
  17. Nov 15 02:00:03 skprov2 dockerd[1504]: time="2018-11-15T02:00:03.863568729+01:00" level=info msg="shim reaped" id=b335536f5f07b1db3f32ba4452fc4aadacc02c6184cef7fc9df619ab81bbf002
  18. Nov 15 02:00:04 skprov2 dockerd[1504]: time="2018-11-15T02:00:04.279347144+01:00" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
  19. Nov 15 02:00:12 skprov2 dockerd[1504]: time="2018-11-15T02:00:12.233635995+01:00" level=info msg="Container 77e00eabebea97357f05f564597d167acad8f2596b25d295b4366baf08ef3127 Failed to exit within 10 seconds of signal 15 - using the force"
  20. Nov 15 02:00:12 skprov2 dockerd[1504]: time="2018-11-15T02:00:12.253563540+01:00" level=info msg="Container 7f7d2a92bcdbb240a9400942c9301f5cd77bf9d3fbde1d38f41a2bd1226f9b09 Failed to exit within 10 seconds of signal 15 - using the force"
  21. Nov 15 02:00:12 skprov2 dockerd[1504]: time="2018-11-15T02:00:12.253563179+01:00" level=info msg="Container f6b49cc85eb7f9226ac192498b1e319d68e0de2faff6b4e3e67adabba43a093a Failed to exit within 10 seconds of signal 15 - using the force"
  22. Nov 15 02:00:12 skprov2 dockerd[1504]: time="2018-11-15T02:00:12.654403249+01:00" level=info msg="shim reaped" id=7f7d2a92bcdbb240a9400942c9301f5cd77bf9d3fbde1d38f41a2bd1226f9b09
  23. Nov 15 02:00:12 skprov2 dockerd[1504]: time="2018-11-15T02:00:12.679675304+01:00" level=info msg="shim reaped" id=f6b49cc85eb7f9226ac192498b1e319d68e0de2faff6b4e3e67adabba43a093a
  24. Nov 15 02:00:12 skprov2 dockerd[1504]: time="2018-11-15T02:00:12.680699340+01:00" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
  25. Nov 15 02:00:12 skprov2 dockerd[1504]: time="2018-11-15T02:00:12.689801078+01:00" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
  26. Nov 15 02:00:13 skprov2 dockerd[1504]: time="2018-11-15T02:00:13.088891655+01:00" level=info msg="shim reaped" id=77e00eabebea97357f05f564597d167acad8f2596b25d295b4366baf08ef3127
  27. Nov 15 02:00:13 skprov2 dockerd[1504]: time="2018-11-15T02:00:13.111193244+01:00" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
  28. Nov 15 02:00:15 skprov2 dockerd[1504]: time="2018-11-15T02:00:15.233286510+01:00" level=info msg="stopping event stream following graceful shutdown" error="Failed to start container c929d444a6eb59a69a0da738ca782a9feb92ac1f80e5c4576bf85376c3d4c17a: id already in use"
  29. Nov 15 02:04:35 skprov2 dockerd[1690]: time="2018-11-15T02:04:35.206030890+01:00" level=error msg="Failed to start container b335536f5f07b1db3f32ba4452fc4aadacc02c6184cef7fc9df619ab81bbf002: id already in use"
  30. Nov 15 02:04:35 skprov2 dockerd[1690]: time="2018-11-15T02:04:35.235647072+01:00" level=error msg="Failed to start container ae7531405113db8b4754491a12c2ababf09fa0c8f501bfe6f1b33e3ff18b6462: id already in use"
  31. Nov 15 02:04:35 skprov2 dockerd[1690]: time="2018-11-15T02:04:35.374241415+01:00" level=error msg="Failed to start container 9b3badc752786df08d00138c0222042a6bd80bb2c971f5a96b71e57105cea95c: id already in use"
  32. Nov 15 02:04:35 skprov2 dockerd[1690]: time="2018-11-15T02:04:35.410173049+01:00" level=error msg="Failed to start container 7f7d2a92bcdbb240a9400942c9301f5cd77bf9d3fbde1d38f41a2bd1226f9b09: id already in use"
  33. Nov 15 02:04:36 skprov2 dockerd[1690]: time="2018-11-15T02:04:36.171600568+01:00" level=error msg="Failed to start container 98a8c1b99cf986e6a889474f0fc28fe3635e466b21f8a37ef3c10a1050495c78: id already in use"
  34. Nov 15 02:04:36 skprov2 dockerd[1690]: time="2018-11-15T02:04:36.970077586+01:00" level=error msg="Failed to start container f6b49cc85eb7f9226ac192498b1e319d68e0de2faff6b4e3e67adabba43a093a: id already in use"
  35. Nov 15 02:04:36 skprov2 dockerd[1690]: time="2018-11-15T02:04:36.993993749+01:00" level=error msg="Failed to start container 77e00eabebea97357f05f564597d167acad8f2596b25d295b4366baf08ef3127: id already in use"
  36. Nov 15 02:04:36 skprov2 dockerd[1690]: time="2018-11-15T02:04:36.994202774+01:00" level=info msg="Loading containers: done."
  37. Nov 15 02:04:37 skprov2 dockerd[1690]: time="2018-11-15T02:04:37.492457742+01:00" level=info msg="Docker daemon" commit=4d60db4 graphdriver(s)=overlay2 version=18.09.0
  38. Nov 15 02:04:37 skprov2 dockerd[1690]: time="2018-11-15T02:04:37.494916840+01:00" level=info msg="Daemon has completed initialization"
  39. Nov 15 02:04:37 skprov2 dockerd[1690]: time="2018-11-15T02:04:37.669139526+01:00" level=info msg="API listen on /var/run/docker.sock"
  40. Nov 15 02:04:37 skprov2 systemd[1]: Started Docker Application Container Engine.
  41. -- Subject: Unit docker.service has finished start-up
  42. -- Defined-By: systemd
  43. -- Support: http://www.ubuntu.com/support
  44. --
  45. -- Unit docker.service has finished starting up.
  46. --
  47. -- The start-up result is RESULT.
  48. ==================================================================================
  49. ==================================================================================
  50. ==================================================================================
  51. root@skprov2:~# cat /lib/systemd/system/docker.service
  52. [Unit]
  53. Description=Docker Application Container Engine
  54. Documentation=https://docs.docker.com
  55. BindsTo=containerd.service
  56. After=network-online.target firewalld.service
  57. Wants=network-online.target
  58. [Service]
  59. Type=notify
  60. # the default is not to use systemd for cgroups because the delegate issues still
  61. # exists and systemd currently does not support the cgroup feature set required
  62. # for containers run by docker
  63. ExecStart=/usr/bin/dockerd -H unix://
  64. ExecReload=/bin/kill -s HUP $MAINPID
  65. TimeoutSec=0
  66. RestartSec=2
  67. Restart=always
  68. # Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.
  69. # Both the old,and new location are accepted by systemd 229 and up,so using the old location
  70. # to make them work for either version of systemd.
  71. StartLimitBurst=3
  72. # Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.
  73. # Both the old,and new name are accepted by systemd 230 and up,so using the old name to make
  74. # this option work for either version of systemd.
  75. StartLimitInterval=60s
  76. # Having non-zero Limit*s causes performance problems due to accounting overhead
  77. # in the kernel. We recommend using cgroups to do container-local accounting.
  78. LimitNOFILE=infinity
  79. LimitNPROC=infinity
  80. LimitCORE=infinity
  81. # Comment TasksMax if your systemd version does not supports it.
  82. # Only systemd 226 and above support this option.
  83. TasksMax=infinity
  84. # set delegate yes so that systemd does not reset the cgroups of docker containers
  85. Delegate=yes
  86. # kill only the docker process,not all processes in the cgroup
  87. KillMode=process
  88. [Install]
  89. WantedBy=multi-user.target
  90. ==================================================================================
  91. ==================================================================================
  92. ==================================================================================
  93. root@skprov2:~# docker info && docker version
  94. Containers: 14
  95. Running: 5
  96. Paused: 0
  97. Stopped: 9
  98. Images: 61
  99. Server Version: 18.09.0
  100. Storage Driver: overlay2
  101. Backing Filesystem: extfs
  102. Supports d_type: true
  103. Native Overlay Diff: true
  104. Logging Driver: json-file
  105. Cgroup Driver: cgroupfs
  106. Plugins:
  107. Volume: local
  108. Network: bridge host macvlan null overlay
  109. Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
  110. Swarm: inactive
  111. Runtimes: runc
  112. Default Runtime: runc
  113. Init Binary: docker-init
  114. containerd version: c4446665cb9c30056f4998ed953e6d4ff22c7c39
  115. runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
  116. init version: fec3683
  117. Security Options:
  118. apparmor
  119. seccomp
  120. Profile: default
  121. Kernel Version: 4.15.0-39-generic
  122. Operating System: Ubuntu 18.04.1 LTS
  123. OSType: linux
  124. Architecture: x86_64
  125. cpus: 16
  126. Total Memory: 31.39GiB
  127. Name: skprov2
  128. ID: EDC2:AGFH:BHKP:P4HS:M5DA:ZPXM:AU6B:TV6E:6KIU:YC4S:F3NN:35A4
  129. Docker Root Dir: /var/lib/docker
  130. Debug Mode (client): false
  131. Debug Mode (server): false
  132. Registry: https://index.docker.io/v1/
  133. Labels:
  134. Experimental: false
  135. Insecure Registries:
  136. localhost:5000
  137. 127.0.0.0/8
  138. Live Restore Enabled: false
  139. Product License: Community Engine
  140. WARNING: No swap limit support
  141. Client:
  142. Version: 18.09.0
  143. API version: 1.39
  144. Go version: go1.10.4
  145. Git commit: 4d60db4
  146. Built: Wed Nov 7 00:49:01 2018
  147. OS/Arch: linux/amd64
  148. Experimental: false
  149. Server: Docker Engine - Community
  150. Engine:
  151. Version: 18.09.0
  152. API version: 1.39 (minimum version 1.12)
  153. Go version: go1.10.4
  154. Git commit: 4d60db4
  155. Built: Wed Nov 7 00:16:44 2018
  156. OS/Arch: linux/amd64
  157. Experimental: false
最佳答案
我偶然发现了同样的问题.
在我的情况下,问题是由于Docker没有正确清理.
如Docker的日志中所示:

  1. time="2018-12-31T17:38:54.330555181+02:00" level=error msg="2089c8095e62011b0dc05e66c51ae59d648d909ca7a8e806af0fdf39b2e3006c cleanup: Failed to delete container from containerd: transport is closing: unknown"

由于restart = always,这些id在启动时使用.
所以Docker说

  1. time="2018-12-31T17:40:04.648261275+02:00" level=error msg="Failed to start container 2089c8095e62011b0dc05e66c51ae59d648d909ca7a8e806af0fdf39b2e3006c: id already in use"

看起来像Docker守护进程关闭的速度比清理容器的速度快(可能是因为容器忽略了信号或其他东西)

所以似乎我的解决方案是在Docker守护程序配置文件中更改守护程序的shutdown-timeout.默认值为10秒或者其他东西,我将其更改为60秒,我不再遇到这些问题.

我仍然认为这是一个合理的场景,应该开箱即用.

猜你在找的Docker相关文章