Moby: 「/ data-container-name」ずいう名前はすでにコンテナで䜿甚されおいたす<hash>。 その名前を再利甚できるようにするには、そのコンテナを削陀たたは名前倉曎する必芁がありたす。</hash>

䜜成日 2016幎06月08日  Â·  49コメント  Â·  ゜ヌス: moby/moby

docker version出力

Client:
 Version:      1.11.2
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   b9f10c9
 Built:        Wed Jun  1 21:23:11 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.11.2
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   b9f10c9
 Built:        Wed Jun  1 21:23:11 2016
 OS/Arch:      linux/amd64

docker info出力

Containers: 87
 Running: 31
 Paused: 0
 Stopped: 56
Images: 55
Server Version: 1.11.2
Storage Driver: overlay
 Backing Filesystem: xfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null host bridge
Kernel Version: 4.5.1-1.el7.elrepo.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.797 GiB
Name: bridge.datanet.ria
ID: HKGW:2SMN:VJFA:XALB:4ETF:ZZE7:OUQJ:GVHX:SXOM:U6PY:EQLR:3P27
Docker Root Dir: /mnt/docker-data
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

远加の環境の詳现AWS、VirtualBox、物理など
CentOS7を実行するVMWAREハむパヌバむザヌを備えたプラむベヌトクラりド。

問題を再珟する手順

  1. 継続的むンテグレヌション/デプロむサむクルで、Dockerコンテキストを完党にクリヌンアップした埌、倚数のコンテナヌをデプロむしたす。
  2. 繰り返す。
  3. しばらくするず通垞は4〜6日、サむクルが䞭断したす。

受け取った結果を説明しおください。

Jun  8 05:12:48 bridge docker: time="2016-06-08T05:12:48.799299085+02:00" level=error msg="Clean up Error! Cannot destroy container ecb293bb1fad3948d9a7366f931a001b7abcbd9c9aefdf27c530be7a4b4cc632: No such container: ecb293bb1fad3948d9a7366f931a001b7abcbd9c9aefdf27c530be7a4b4cc632"
Jun  8 05:12:48 bridge docker: time="2016-06-08T05:12:48.856161501+02:00" level=error msg="Handler for POST /v1.22/containers/create returned error: device or resource busy"
Jun  8 09:56:45 bridge docker: time="2016-06-08T09:56:45.266066521+02:00" level=error msg="Handler for POST /v1.22/containers/create returned error: Conflict. The name \"/my-redacted-data-container\" is already in use by container ecb293bb1fad3948d9a7366f931a001b7abcbd9c9aefdf27c530be7a4b4cc632. You have to remove (or rename) that container to be able to reuse that name."
Jun  8 10:35:42 bridge docker: time="2016-06-08T10:35:42.523718617+02:00" level=error msg="Handler for DELETE /v1.23/containers/ecb293bb1fad3948d9a7366f931a001b7abcbd9c9aefdf27c530be7a4b4cc632 returned error: No such container: ecb293bb1fad3948d9a7366f931a001b7abcbd9c9aefdf27c530be7a4b4cc632"
Jun  8 10:37:39 bridge docker: time="2016-06-08T10:37:39.492129195+02:00" level=error msg="Handler for DELETE /v1.23/containers/my-redacted-data-container returned error: No such container: my-redacted-data-container"
Jun  8 10:49:39 bridge docker: time="2016-06-08T10:49:39.924944312+02:00" level=error msg="Handler for DELETE /v1.23/containers/my-redacted-data-container returned error: No such container: my-redacted-data-container"
Jun  8 10:50:03 bridge docker: time="2016-06-08T10:50:03.114422404+02:00" level=error msg="Handler for DELETE /v1.23/containers/ecb293bb1fad3948d9a7366f931a001b7abcbd9c9aefdf27c530be7a4b4cc632 returned error: No such container: ecb293bb1fad3948d9a7366f931a001b7abcbd9c9aefdf27c530be7a4b4cc632"
Jun  8 11:03:29 bridge docker: time="2016-06-08T11:03:29.425100332+02:00" level=error msg="Handler for POST /v1.22/containers/create returned error: Conflict. The name \"/my-redacted-data-container\" is already in use by container ecb293bb1fad3948d9a7366f931a001b7abcbd9c9aefdf27c530be7a4b4cc632. You have to remove (or rename) that container to be able to reuse that name."
Jun  8 11:31:38 bridge docker: time="2016-06-08T11:31:38.704053754+02:00" level=error msg="Handler for POST /v1.23/containers/my-redacted-data-container/rename returned error: No such container: my-redacted-data-container"
Jun  8 11:31:49 bridge docker: time="2016-06-08T11:31:49.934637125+02:00" level=error msg="Handler for DELETE /v1.23/containers/my-redacted-data-container returned error: No such container: my-redacted-data-container"
Jun  8 11:31:51 bridge docker: time="2016-06-08T11:31:51.939043806+02:00" level=error msg="Handler for DELETE /v1.23/containers/my-redacted-data-container returned error: No such container: my-redacted-data-container"

期埅した結果を説明しおください。
クリヌニングプロセスがすべおをクリヌニングし、受け取らないこずを期埅しおください

ERROR: for my-redacted-data-container  Conflict. The name "/my-redacted-data-container" is already in use by container ecb293bb1fad3948d9a7366f931a001b7abcbd9c9aefdf27c530be7a4b4cc632. You have to remove (or rename) that container to be able to reuse that name.

重芁ず思われる远加情報たずえば、問題はたたにしか発生したせん
問題は、毎週、たたは倉曎ず統合の数に応じお、週に2回でも頻繁に発生しおいたす。
コンテキストを再床クリヌンアップしおも問題は解決せず、dockerを再起動するこずもできたせん。唯䞀の解決策は、dockerを停止し、 /var/lib/docker/* 私の堎合は/ mnt / docker-dataのすべおのコンテンツを削陀しお、dockerを起動するこずです。

kinbug statumore-info-needed versio1.11

最も参考になるコメント

私はすべおを無力化するヘルパヌ機胜を持っおいるので、私たちの継続的な䜕ずか、サむクルをテストするこずができたす、えヌず...継続的に。 基本的に、それは次のように芁玄されたす。

コンテナをクリアするには

docker rm -f $(docker ps -a -q)

画像をクリアするには

docker rmi -f $(docker images -a -q)

ボリュヌムをクリアするには

docker volume rm $(docker volume ls -q)

ネットワヌクをクリアするには

docker network rm $(docker network ls | tail -n+2 | awk '{if($2 !~ /bridge|none|host/){ print $1 }}')

党おのコメント49件

それらの容噚をどのように掃陀したしたか これらのリ゜ヌスボリュヌムネットワヌクなどを含むをクリヌンアップする理由で䟋倖が発生したすか

私はすべおを無力化するヘルパヌ機胜を持っおいるので、私たちの継続的な䜕ずか、サむクルをテストするこずができたす、えヌず...継続的に。 基本的に、それは次のように芁玄されたす。

コンテナをクリアするには

docker rm -f $(docker ps -a -q)

画像をクリアするには

docker rmi -f $(docker images -a -q)

ボリュヌムをクリアするには

docker volume rm $(docker volume ls -q)

ネットワヌクをクリアするには

docker network rm $(docker network ls | tail -n+2 | awk '{if($2 !~ /bridge|none|host/){ print $1 }}')

コンテナがciの目的で頻繁に䞊䞋するスりォヌムクラスタヌがあり、同じ問題が発生したす。 私の堎合、マシンを再起動する必芁はありたせんが、通垞はすべおのコンテナを匷制終了したす

$ docker rm -f $(docker ps -a -q)

その埌、dockerを再起動したす

$ sudo service docker restart

矀れを再䜜成するず修正されたす。

これが兞型的な倱敗のログです。 私はansibleを䜿甚しお、矀れに察しお矀れノヌドの1぀でdockercomposeコマンドを実行したす。

TASK: [Run docker-compose up] ************************************************* 
failed: [XX.XX.XX.XX] => {"changed": true, "cmd": ["/usr/local/bin/docker-compose", "-f", "/containers/docker-compose/docker-compose-booking-pre-eng-811.yml", "--project-name", "booking-eng-811", "--verbose", "up", "-d"], "delta": "0:00:00.355991", "end": "2016-06-15 12:02:11.623256", "rc": 255, "start": "2016-06-15 12:02:11.267265", "warnings": []}
stderr: compose.config.config.find: Using configuration files: /containers/docker-compose/docker-compose-booking-pre-eng-811.yml
docker.auth.auth.load_config: Found 'auths' section
docker.auth.auth.parse_auth: Found entry (registry=u'my-private-registry', username=u'redacted-username')
compose.cli.command.get_client: docker-compose version 1.7.1, build 0a9ab35
docker-py version: 1.8.1
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013
compose.cli.command.get_client: Docker base_url: http://127.0.0.1:4000
compose.cli.command.get_client: Docker version: KernelVersion=3.10.0-327.18.2.el7.x86_64, Os=linux, BuildTime=Fri May 27 17:25:03 UTC 2016, ApiVersion=1.22, Version=swarm/1.2.3, GitCommit=eaa53c7, Arch=amd64, GoVersion=go1.5.4
compose.cli.verbose_proxy.proxy_callable: docker inspect_network <- ('back')
compose.cli.verbose_proxy.proxy_callable: docker inspect_network -> {u'Containers': {u'0f4c1b89e2ae9476a53f07552f678d2914bb391d1d80ab051f74925eb9fbf65a': {u'EndpointID': u'5f07ba0940ffcb4b0c2f0acf5424b6976b28bd8344a56b0464ab6517da884bc8',
                                                                                       u'IPv4Address': u'10.0.0.3/24',
                                                                                       u'IPv6Address': u'',
                                                                                       u'MacAddress': u'02:42:0a:00:00:03',
                                                                                       u'Name': u'registrator_registrator_1'},
                 u'782c1d07d51f6871400da38e8840e81e9300f54a195b9e6ff2e931b23274655a': {u'EndpointID': u'c8654b5b73eaca7f630d6e2c4c898122a3ae6a86bd0cfab68a8654414fe4821a',
                                                                                       u'IPv4Address': u'10.0.0.2/24',
                                                                                       u'IPv6Address': u'',
                                                                                       u'MacAddress': u'02:42:0a:00:00:02',
                                                                                       u'Name': u'stdb1'},
...
compose.network.ensure: Network back declared as external. No new network will be created.
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={u'label': [u'com.docker.compose.project=bookingeng811', u'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={u'label': [u'com.docker.compose.project=bookingeng811', u'com.docker.compose.service=redis1', u'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={u'label': [u'com.docker.compose.project=bookingeng811', u'com.docker.compose.service=web', u'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={u'label': [u'com.docker.compose.project=bookingeng811', u'com.docker.compose.service=api_locations', u'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={u'label': [u'com.docker.compose.project=bookingeng811', u'com.docker.compose.service=booking', u'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('redis:2.8.21')
compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {u'Architecture': u'amd64',
 u'Author': u'',
 u'Comment': u'',
 u'Config': {u'AttachStderr': False,
             u'AttachStdin': False,
             u'AttachStdout': False,
             u'Cmd': [u'redis-server'],
             u'Domainname': u'',
             u'Entrypoint': [u'/entrypoint.sh'],
             u'Env': [u'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
...
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('my-private-registry/web:master')
compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {u'Architecture': u'amd64',
 u'Author': u"Emmet O'Grady",
 u'Comment': u'',
 u'Config': {u'ArgsEscaped': True,
             u'AttachStderr': False,
             u'AttachStdin': False,
             u'AttachStdout': False,
             u'Cmd': [u'/bin/sh', u'-c', u'/entrypoint.sh'],
             u'Domainname': u'',
             u'Entrypoint': None,
...
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('my-private-registry/api-locations:master')
compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {u'Architecture': u'amd64',
 u'Author': u"Emmet O'Grady",
 u'Comment': u'',
 u'Config': {u'ArgsEscaped': True,
             u'AttachStderr': False,
             u'AttachStdin': False,
             u'AttachStdout': False,
             u'Cmd': [u'/bin/sh', u'-c', u'/entrypoint.sh'],
             u'Domainname': u'',
             u'Entrypoint': None,
...
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('my-private-registry/booking:eng-811')
compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {u'Architecture': u'amd64',
 u'Author': u'',
 u'Comment': u'',
 u'Config': {u'ArgsEscaped': True,
             u'AttachStderr': False,
             u'AttachStdin': False,
             u'AttachStdout': False,
             u'Cmd': [u'/bin/sh', u'-c', u'/entrypoint.sh'],
             u'Domainname': u'',
             u'Entrypoint': None,
...
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={u'label': [u'com.docker.compose.project=bookingeng811', u'com.docker.compose.service=redis1', u'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.project._get_convergence_plans: web has upstream changes (redis1)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={u'label': [u'com.docker.compose.project=bookingeng811', u'com.docker.compose.service=web', u'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.project._get_convergence_plans: api_locations has upstream changes (redis1)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={u'label': [u'com.docker.compose.project=bookingeng811', u'com.docker.compose.service=api_locations', u'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.project._get_convergence_plans: booking has upstream changes (redis1)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={u'label': [u'com.docker.compose.project=bookingeng811', u'com.docker.compose.service=booking', u'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.parallel.feed_queue: Pending: set([<Service: web>, <Service: redis1>, <Service: api_locations>, <Service: booking>])
compose.parallel.feed_queue: Starting producer thread for <Service: redis1>
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('redis:2.8.21')
compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {u'Architecture': u'amd64',
 u'Author': u'',
 u'Comment': u'',
 u'Config': {u'AttachStderr': False,
             u'AttachStdin': False,
             u'AttachStdout': False,
             u'Cmd': [u'redis-server'],
             u'Domainname': u'',
             u'Entrypoint': [u'/entrypoint.sh'],
             u'Env': [u'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
...
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={u'label': [u'com.docker.compose.project=bookingeng811', u'com.docker.compose.service=redis1', u'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('redis:2.8.21')
compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {u'Architecture': u'amd64',
 u'Author': u'',
 u'Comment': u'',
 u'Config': {u'AttachStderr': False,
             u'AttachStdin': False,
             u'AttachStdout': False,
             u'Cmd': [u'redis-server'],
             u'Domainname': u'',
             u'Entrypoint': [u'/entrypoint.sh'],
             u'Env': [u'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
...
compose.service.build_container_labels: Added config hash: ae3be0880fdcb78073a419c6102617b730bfb42171c8204bf51e5c36eb8a85f3
compose.cli.verbose_proxy.proxy_callable: docker create_host_config <- (memswap_limit=None, links=[], devices=None, pid_mode=None, log_config={'Type': u'', 'Config': {}}, cpu_quota=None, read_only=None, dns=None, volumes_from=[], port_bindings={}, security_opt=None, extra_hosts=None, cgroup_parent=None, network_mode='back', shm_size=None, tmpfs=None, cap_add=None, restart_policy={u'MaximumRetryCount': 0, u'Name': u'always'}, dns_search=None, privileged=False, binds=[], ipc_mode=None, mem_limit='64M', cap_drop=None, ulimits=None)
compose.cli.verbose_proxy.proxy_callable: docker create_host_config -> {'Binds': [],
 'Links': [],
 'LogConfig': {'Config': {}, 'Type': u''},
 'Memory': 67108864L,
 'NetworkMode': 'back',
 'PortBindings': {},
 'RestartPolicy': {u'MaximumRetryCount': 0, u'Name': u'always'},
 'VolumesFrom': []}
compose.service.create_container: Creating bookingeng811_redis1_1
compose.cli.verbose_proxy.proxy_callable: docker create_container <- (name=u'bookingeng811_redis1_1', image='redis:2.8.21', labels={u'com.docker.compose.service': u'redis1', u'com.docker.compose.project': u'bookingeng811', u'com.docker.compose.config-hash': 'ae3be0880fdcb78073a419c6102617b730bfb42171c8204bf51e5c36eb8a85f3', u'com.docker.compose.version': u'1.7.1', u'com.docker.compose.oneoff': u'False', u'com.docker.compose.container-number': '1'}, host_config={'NetworkMode': 'back', 'Links': [], 'PortBindings': {}, 'Binds': [], 'RestartPolicy': {u'MaximumRetryCount': 0, u'Name': u'always'}, 'Memory': 67108864L, 'LogConfig': {'Type': u'', 'Config': {}}, 'VolumesFrom': []}, environment=[], volumes={}, detach=True, networking_config={u'EndpointsConfig': {'back': {u'IPAMConfig': {}, u'Aliases': ['redis1']}}})
compose.parallel.parallel_execute_iter: Failed: <Service: redis1>
compose.parallel.feed_queue: Pending: set([<Service: booking>, <Service: api_locations>, <Service: web>])
compose.parallel.feed_queue: <Service: booking> has upstream errors - not processing
compose.parallel.feed_queue: <Service: api_locations> has upstream errors - not processing
compose.parallel.feed_queue: <Service: web> has upstream errors - not processing
compose.parallel.parallel_execute_iter: Failed: <Service: booking>
compose.parallel.feed_queue: Pending: set([])
compose.parallel.parallel_execute_iter: Failed: <Service: api_locations>
compose.parallel.feed_queue: Pending: set([])
compose.parallel.parallel_execute_iter: Failed: <Service: web>
compose.parallel.feed_queue: Pending: set([])

ERROR: for redis1  Error response from daemon: Conflict. The name "/bookingeng811_redis1_1" is already in use by container 5ecf77fc7bbad0548cf34c891ac4d043b2692816b63ed97744924bc1296b8e65. You have to remove (or rename) that container to be able to reuse that name.
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "compose/cli/main.py", line 63, in main
AttributeError: 'ProjectError' object has no attribute 'msg'
docker-compose returned -1

「bookingeng811_redis1_1」ずいうコンテナを手動で削陀しようずしたしたが、どこにも存圚したせん。

そこにも同じ問題がありたす。

私は頻繁にサむクルを繰り返したす

  • docker stopname
  • docker rm -fname
  • docker pullname
  • docker runname

ある時点2〜3日で動䜜を停止したす。
dockerデヌモンからの゚ラヌ応答競合。 名前「name」は、コンテナcontainer_idによっおすでに䜿甚されおいたす。 その名前を再利甚できるようにするには、そのコンテナを削陀たたは名前倉曎する必芁がありたす。

コンテナcontainer_idを手動で削陀しようずするず、次のように衚瀺されたす。
コンテナの削陀に倱敗したしたcontainer_idデヌモンからの゚ラヌ応答そのようなコンテナはありたせんcontainer_id

コンテナヌcontainer_idがリストdocker ps -aになく、フォルダヌ/ var / lib / docker / containersにありたせん

おそらく問題の根本は-fパラメヌタでコンテナを削陀するこずですか そのため、dockerは正しくクリヌンアップせず、dockerデヌモンはコンテナヌがただそこにあるず芋なしたす。


Dockerバヌゞョンの出力

クラむアント
バヌゞョン1.10.3
APIバヌゞョン1.22
Goバヌゞョンgo1.5.3
Gitコミット8acee1b
構築
OS / Archlinux / amd64

サヌバ
バヌゞョン1.10.3
APIバヌゞョン1.22
Goバヌゞョンgo1.5.3
Gitコミット8acee1b
構築
OS / Archlinux / amd64

Docker情報の出力

コンテナ27
実行䞭13
䞀時停止0
停止14
画像1512
サヌバヌバヌゞョン1.10.3
ストレヌゞドラむバヌdevicemapper
プヌル名docker-89-521647-プヌル
プヌルのブロックサむズ65.54 kB
基本デバむスサむズ107.4 GB
バッキングファむルシステムxfs
デヌタファむル/ dev / loop2
メタデヌタファむル/ dev / loop3
䜿甚されるデヌタスペヌス53.62 GB
デヌタスペヌスの合蚈107.4 GB
䜿甚可胜なデヌタスペヌス53.76 GB
䜿甚されるメタデヌタスペヌス129.9 MB
メタデヌタスペヌスの合蚈2.147 GB
利甚可胜なメタデヌタスペヌス2.018 GB
サポヌトされおいるUdev同期true
遅延削陀が有効false
延期された削陀が有効false
延期された削陀枈みデバむス数0
デヌタルヌプファむル/ var / lib / docker / devicemapper / devicemapper / data
譊告ルヌプバックデバむスの䜿甚は、本番環境での䜿甚は匷くお勧めしたせん。 --storage-opt dm.thinpooldev䜿甚するか、 --storage-opt dm.no_warn_on_loop_devices=trueを䜿甚しおこの譊告を抑制したす。
メタデヌタルヌプファむル/ var / lib / docker / devicemapper / devicemapper / metadata
ラむブラリバヌゞョン1.02.932015-01-30
実行ドラむバヌネむティブ-0.2
ロギングドラむバヌjson-file
プラグむン
ボリュヌムロヌカル
ネットワヌクホストブリッゞnull
カヌネルバヌゞョン4.5.0-coreos-r1
オペレヌティングシステムCoreOS 1010.5.0MoreOS
OSTypelinux
アヌキテクチャx86_64
CPU8
総メモリ11.74 GiB
名前xx-スレヌブ
ID LVGEQBNA  DXFPAWR7 NAVO  CGFUDOF  CTESVZQJ  SRZJJLKW

Dockerは「nameIndex」を䜿甚しおコンテナヌぞの参照を保存したす。 説明から、問題はnameIndexが削陀されたコンテナず同期しおいないこずが原因であるず思われたす。 ここで゚ラヌが返されたす。

同期しおいないnameIndexをクリヌンアップしお、問題に䞀時的に察凊できる堎合がありたす。 dockerはnameIndexに加えおいく぀かのむンデックスたずえば、linkIndexを䜿甚するため、クリヌンアップが必芁な堎所がいく぀かある可胜性がありたす。 非同期が発生する堎所を芋぀けるこずは、長期的にはより良い解決策になる可胜性がありたす。

同期しおいないnameIndexesをクリヌンアップする方法はありたすか
今のずころ私が持っおいる唯䞀の解決策は、良くないノヌドを再起動するこずです。 Dockerデヌモンの再起動も良くありたせん。

私にずっおうたくいくのは、dockerデヌモンを停止し、 /var/lib/docker/*からすべおを削陀しお、dockerを再起動するこずです。 これは継続的むンテグレヌションサヌバヌであるため、Dockerコンテキストにむメヌゞがロヌドされおいないこずを凊理できるので、YMMVで機胜したす。

1.10.3でも同じ動䜜が芋られたす

Containers: 105
 Running: 75
 Paused: 0
 Stopped: 30
Images: 1434
Server Version: 1.10.3
Storage Driver: overlay
 Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Plugins: 
 Volume: local
 Network: bridge null host
Kernel Version: 4.5.0-coreos-r1
Operating System: CoreOS 1010.5.0 (MoreOS)
OSType: linux
Architecture: x86_64

CoreOSずDocker1.10.3でこの問題が毎日発生しおいたす。

 # journalctl -fu docker
Aug 22 12:37:53 stateless-0.novalocal dockerd[8215]: time="2016-08-22T12:37:53.857617384+10:00" level=error msg="Handler for POST /v1.22/containers/create returned error: Conflict. The name \"/bridge-clockwork\" is already in use by container a9710d980f2935638df62e67175e28078753818a8b7e1e20bd2840d738dd58c0. You have to remove (or rename) that container to be able to reuse that name."

# docker inspect a9710d980f2935638df62e67175e28078753818a8b7e1e20bd2840d738dd58c0
Error: No such image or container: a9710d980f2935638df62e67175e28078753818a8b7e1e20bd2840d738dd58c0

# docker rm -f a9710d980f2935638df62e67175e28078753818a8b7e1e20bd2840d738dd58c0
Failed to remove container (a9710d980f2935638df62e67175e28078753818a8b7e1e20bd2840d738dd58c0): Error response from daemon: No such container: a9710d980f2935638df62e67175e28078753818a8b7e1e20bd2840d738dd58c0

すべおのケヌスの50で、dockerデヌモンを再起動するず問題が修正されたす。 それ以倖の堎合は、rm -rf / var / lib / dockerを実行する必芁がありたす。 どちらの回避策も、本番ワヌクロヌドを混乱させたす。

@cdwertmann rm -rf /var/lib/dockerにする必芁がある堎合、それはその名前のコンテナが存圚し、デヌモンの再起動埌に再ロヌドされるこずを意味したす。 これらのコンテナを削陀しようずしたずきに同じ゚ラヌが発生する堎合は、 /var/lib/docker/containers/<id>内容を確認するず非垞に圹立ちたす。

@ cpuguy83コンテナディレクトリの内容は次のずおりです。

 # ls /var/lib/docker/containers/69d00206523a0a6a996c27d6364ec13cca7c8c1d6e615e41d9da6c675abc717a/ -lah
total 184K
drwx------.  3 root root 4.0K Aug 20 23:14 .
drwx------. 16 root root 4.0K Aug 23 14:41 ..
-rw-r-----.  1 root root 102K Aug 23 14:39 69d00206523a0a6a996c27d6364ec13cca7c8c1d6e615e41d9da6c675abc717a-json.log
-rw-r--r--.  1 root root 2.9K Aug 23 14:41 config.v2.json
-rw-r--r--.  1 root root  975 Aug 23 14:41 hostconfig.json
-rw-r--r--.  1 root root   17 Aug 20 23:14 hostname
-rw-r--r--.  1 root root  185 Aug 20 23:14 hosts
-rw-r--r--.  1 root root   45 Aug 20 23:14 resolv.conf
-rw-r--r--.  1 root root   71 Aug 20 23:14 resolv.conf.hash
drwx------.  2 root root 4.0K Aug 20 23:14 shm

config.v2.jsonで"RemovalInProgress":true芋るこずができたす

# cat /var/lib/docker/containers/69d00206523a0a6a996c27d6364ec13cca7c8c1d6e615e41d9da6c675abc717a/config.v2.json 
{"State":{"Running":false,"Paused":false,"Restarting":false,"OOMKilled":false,"RemovalInProgress":true,"Dead":true,"Pid":0,"ExitCode":2,"Error":"","StartedAt":"2016-08-20T13:14:17.864964407Z","FinishedAt":"2016-08-23T04:41:29.775183062Z"},"ID":"69d00206523a0a6a996c27d6364ec13cca7c8c1d6e615e41d9da6c675abc717a","Created":"2016-08-20T13:13:58.579971761Z","Path":"/bin/registrator","Args":["-ip","172.16.0.102","-resync","300","consul://172.16.0.102:8500"],"Config":{"Hostname":"sphinx","Domainname":"novalocal","User":"","AttachStdin":false,"AttachStdout":true,"AttachStderr":true,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd":["-ip","172.16.0.102","-resync","300","consul://172.16.0.102:8500"],"Image":"registry/registrator","Volumes":null,"WorkingDir":"","Entrypoint":["/bin/registrator"],"OnBuild":null,"Labels":{},"StopSignal":"SIGTERM"},"Image":"sha256:3b59190c6c800907d7a62c245bf93888db802b00407002fff7e08fed24e5557e","NetworkSettings":{"Bridge":"","SandboxID":"7713b13649c7964520180342f99914dd4720833ed39a51793ed483c356e0bd85","HairpinMode":false,"LinkLocalIPv6Address":"","LinkLocalIPv6PrefixLen":0,"Networks":{"bridge":{"IPAMConfig":null,"Links":null,"Aliases":null,"NetworkID":"5c0baa715bb76ea2eb5a6a32deb36a8093391ba6c76e55f31768838560c10f22","EndpointID":"","Gateway":"","IPAddress":"","IPPrefixLen":0,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":""}},"Ports":null,"SandboxKey":"/var/run/docker/netns/7713b13649c7","SecondaryIPAddresses":null,"SecondaryIPv6Addresses":null,"IsAnonymousEndpoint":false},"LogPath":"/var/lib/docker/containers/69d00206523a0a6a996c27d6364ec13cca7c8c1d6e615e41d9da6c675abc717a/69d00206523a0a6a996c27d6364ec13cca7c8c1d6e615e41d9da6c675abc717a-json.log","Name":"/registrator","Driver":"overlay","MountLabel":"system_u:object_r:svirt_lxc_file_t:s0:c631,c718","ProcessLabel":"system_u:system_r:svirt_lxc_net_t:s0:c631,c718","RestartCount":0,"HasBeenStartedBefore":true,"HasBeenManuallyStopped":false,"MountPoints":{"/etc/localtime":{"Source":"/etc/localtime","Destination":"/etc/localtime","RW":false,"Name":"","Driver":"","Relabel":"ro","Propagation":"rprivate","Named":false},"/tmp/docker.sock":{"Source":"/var/run/docker.sock","Destination":"/tmp/docker.sock","RW":true,"Name":"","Driver":"","Relabel":"","Propagation":"rprivate","Named":false}},"AppArmorProfile":"","HostnamePath":"/var/lib/docker/containers/69d00206523a0a6a996c27d6364ec13cca7c8c1d6e615e41d9da6c675abc717a/hostname","HostsPath":"/var/lib/docker/containers/69d00206523a0a6a996c27d6364ec13cca7c8c1d6e615e41d9da6c675abc717a/hosts","ShmPath":"/var/lib/docker/containers/69d00206523a0a6a996c27d6364ec13cca7c8c1d6e615e41d9da6c675abc717a/shm","ResolvConfPath":"/var/lib/docker/containers/69d00206523a0a6a996c27d6364ec13cca7c8c1d6e615e41d9da6c675abc717a/resolv.conf","SeccompProfile":""}

/var/lib/docker/containers/69d00206523a0a6a996c27d6364ec13cca7c8c1d6e615e41d9da6c675abc717a/を手動で削陀し、dockerデヌモンを再起動した埌、競合は解決されたした。

ここで同じこずを芋おください

docker -v      
Docker version 1.10.3, build 3cd164c
docker-compose -v
docker-compose version 1.8.0, build f3628c7
cat /etc/os-release 
NAME=CoreOS
ID=coreos
VERSION=1068.10.0
VERSION_ID=1068.10.0
BUILD_ID=2016-08-23-0220
PRETTY_NAME="CoreOS 1068.10.0 (MoreOS)"
ANSI_COLOR="1;32"
HOME_URL="https://coreos.com/"
BUG_REPORT_URL="https://github.com/coreos/bugs/issues" 

そしお、これは私が私のコンテナを開始/停止/再起動する方法です

cat /etc/systemd/system/u\@.service 
[Unit]
Description=%p-%i

# Requirements
Requires=docker.service

# Dependency ordering
After=docker.service

[Service]
Restart=always
RestartSec=10
TimeoutStartSec=60
TimeoutStopSec=15
EnvironmentFile=-/data/domains/%i/env
WorkingDirectory=/data/domains/%i/
ExecStartPre=-/opt/bin/docker-compose rm -f
ExecStart=/bin/bash -euxc "VIRTUAL_HOST=%i /opt/bin/docker-compose up"
ExecStop=/opt/bin/docker-compose stop

[Install]
WantedBy=multi-user.target

同じ゚ラヌが発生し、 docker ps -a䞋には䜕もありたせんでしたが、 /var/lib/docker/containers䞋にコンテナハッシュのあるフォルダがあり、削陀したしたが、それでも運がありたせん。 dockerデヌモンを再起動したした。動䜜したした。

https://github.com/docker/compose/issues/3277#issuecomment -238080180のこの回避策も、この問題を修正したす...

@marcelmfsは私には/var/lib/docker党䜓を削陀する必芁がありたす

奇劙なこずに、私にずっおはうたくいきたした。 念のためもう䞀床詊しおみたす。

@marcelmfsなので、

それだけでなく、実行䞭のすべおのコンテナdocker rm -f $(docker ps -aq)ず、おそらくすべおのネットワヌクも削陀したした。これは、 network/files/local-kv.dbも削陀するためです。

docker 1.12にアップグレヌドしおから、この問題は発生しおいたせん。

他の誰かがただ1.12.xでこれを芋おいたすか

確認するにはただアップグレヌドする必芁がありたす...明日アップグレヌド甚のりィンドりを割り圓おたす。

CIサヌバヌがアップグレヌドされ、 local-kv.dbファむルを削陀しおいた回避策が削陀されたした。 来週はこれに぀いおもっずニュヌスがありたす。

ここでも同じ1.11.xで問題が発生したしたが、1.12.x以降は発生しおいたせん

ええ、1.12では誰もこれに぀いお䞍平を蚀っおいないこずに気づきたした。
䜕が倉わったのだろうか、ネヌミングに盎接関係するものは䜕もないず確信しおいたす。

tl; drすべおのバヌゞョン> = 1.10.0が圱響を受けたすが、> = 1.12.0では発生する可胜性がはるかに䜎くなりたす。

コヌドでこの問題を远跡したしたが、 nameIndex構造が導入されたすべおのバヌゞョン> = 1.10.0で間違いなく発生する可胜性がありたす。 @yongtangが述べたように、この構造は削陀されたコンテナず同期しなくなりたす。

この゚ラヌは、 nameIndexがdaemon.containersず同期しなくなるたびに発生したす。

問題はDaemon.create関数にありたす。 nameIndexは64行目でdaemon.newContainer()によっお曎新されたすが、 daemon.containersは149行目でdaemon.Register()によっお曎新されたす。

これら2぀の間で䜕かが倱敗した堎合、dockerは䞀貫性のない状態になりたす。 https://github.com/docker/docker/commit/114be249f022535f0800bd45987c4e9cd1b321a41.12.0に到達をコミットする前に、問題をトリガヌするために必芁なのはそれだけでした。 このコミットにより、クリヌンアップ関数がdocker.ContainerRmからdocker.cleanupContainer 。これは、コンテナヌを登録する

ただし、 docker.cleanupContainerは、クリヌンアップに成功する前に倱敗する可胜性がありたす。 113行目のnameIndexから゚ントリを削陀するだけですが、それ以前に問題が発生する可胜性のあるものはたくさんありたす。

䞊蚘のすべおは、 nameIndexがディスクに氞続化されおいないため、単玔なデヌモンの再起動で問題が修正される堎合を説明しおいたす。 このバグが再起動を乗り切る方法を理解するためにコヌドに頭をぶ぀けたしたが、その方法がわかりたせん。 私たちは間違いなく本番環境でそれを芋おきたしたので、珟圚私はそれが再び起こるのを埅っお、さらに調査しようずしおいたす。

27956で問題のメモリ内バヌゞョンを修正したした

この問題は、最新1.12.3に曎新する前に発生したばかりで、dockerをアンむンストヌルしお再むンストヌルしたしたが、残念ながらただ発生しおいたす。

docker version出力

Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 23:26:11 2016
 OS/Arch:      windows/amd64

Server:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 23:26:11 2016
 OS/Arch:      linux/amd64

docker info出力

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 1.12.3
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 11
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null host bridge overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.4.27-moby
Operating System: Alpine Linux v3.4
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.919 GiB
Name: moby
ID: XZHZ:262M:ENKG:Z62J:U4OX:FVKN:CGZW:7OCZ:IU5R:D7OM:F3MT:K3ND
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 12
 Goroutines: 22
 System Time: 2016-11-09T01:01:32.4577814Z
 EventsListeners: 0
Registry: https://index.docker.io/v1/
WARNING: No kernel memory limit support
Insecure Registries:
 127.0.0.0/8

私のワヌクフロヌは、このスレッドで蚀及されおいるものずは少し異なりたすが、テストスむヌトでコンテナヌのセットアップず砎棄をたくさん行っおいるずいう点で䌌おいたす。 これがリモヌトAPIぞのリク゚ストを通じお行われおいるこずも興味深いかもしれたせん。

どうすればいいのか少し戞惑いたす。 芁求があれば、私は確かに私の問題のテストケヌスを準備するこずができたすが、珟圚、それは䜜業䞭のより倧きなプロゞェクトの䞀郚であるため、物事を削枛する必芁がありたす。

䜕か提案はありたすか

@davidglivarデヌモンを再起動しおも、ただ゚ラヌが衚瀺されおいたすか

@ cpuguy83デヌモンを再起動するこずで、Windowsアプリの

@davidglivarだからあなたはこれを芋おいたす

  1. 䜕かをする
  2. ゚ラヌが発生する
  3. docker4winを再起動したす
  4. ゚ラヌが発生する



@ cpuguy83うん 確かに、私はそのシヌケンスを数回実行したした。

@davidglivar docker ps -a 、そこにコンテナが衚瀺されるかどうかを確認できたすか

@ cpuguy83 docker ps -aはコンテナを生成したせん。 テストの分解ず準備が原因だず思いたすが、テストで゚ラヌをキャッチし、すぐにdocker ps -aの子プロセスを䜜成しおも、結果は同じです。

前日のコメントをフォロヌアップするためだけに、アプリケヌションのコンテキストで409゚ラヌが発生したした。 ただし、テストスクリプトここにはただ問題が衚瀺されおいたせん。

これを再珟する信頌できる方法を䜜成したした。 次のPythonスクリプトを䜿甚しお、コンテナ名を競合させるこずができたす。

# pip install docker-py
from docker import Client

NAME = 'foobar'

cli = Client(version='auto')

# Create an invalid security option that will cause an error in
# https://github.com/docker/docker/blob/v1.10.3/daemon/create.go#L82
host_config = cli.create_host_config(security_opt=['invalid_opt'])

# After this, NAME will always conflict until the daemon gets restarted
try:
    cli.create_container(name=NAME, host_config=host_config, image='', command='/')
except:
    pass

この問題は、 /var/lib/dockerワむプが必芁な堎合のいく぀かを説明する次の条件のいずれかでトリガヌされる可胜性もありたす。

  • /var/lib/dockerはiノヌドが䞍足しおいたす
  • /var/lib/dockerはスペヌスが䞍足しおいたす
  • /var/lib/docker/<storage-driver>は読み取り専甚です

修正は、docker> = 1.12.0に曎新するこずです。

この問題に぀いお遅れおごめんなさい。

これたでのずころ、回避策を削陀しおから、CIサヌバヌでこの問題が発生するこずはなくなりたした。

Client:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:
 OS/Arch:      linux/amd64

たた、これを経隓しおいたす

CentOS 7.2
Docker 1.12.1

/var/lib/docker/containers䞋に指定されたハッシュを持぀フォルダヌはなく、デヌモンを再起動しおも効果はありたせんでした。

@orodbhenデヌモンの再起動が機胜しなかった堎合は、その名前でロヌドされたコンテナヌが存圚する必芁がありたす。
docker ps -aを確認できたすか

@ cpuguy83いいえ、その名前のコンテナはありたせん。

実際、これはdocker-py問題かもしれないず思いたす。 ここで䜕人の人が䜿っおいるのだろうか。 @petrosaggは

問題のあるコンテナ名が䜿甚されおいない堎合でも、 create_container()呌び出すず発生したす。 しかし、 docker createたたはdocker runを䜿甚しお、dockershellコマンドに問題はありたせん。

ただし、デヌモンによっお生成された゚ラヌメッセヌゞを出力しおいるように芋えるため、奇劙です。

@petrosagg docker -pyの代わりにdockershellコマンドを䜿甚しおも同じ問題が発生したすか

@orodbhen docker -pyむンスタンスがCLIず同じデヌモンず

実行されおいるデヌモンは1぀だけです。どちらも/var/run/docker.sockたす。

docker-pyの問題を䜜成したした。 しかし、問題を匕き起こしおいるdockerに根本的な問題がないこずを私はただ確信しおいたせん。

@orodbhenデヌモンを再起動するずきに、ロヌドシヌケンス特にコンテナヌのロヌドからログを取埗できたすか

デヌモンを再起動した堎合、これは参照カりントの問題にたせん。 名前レゞストラはメモリにのみ保持され、デヌモンの再起動時に再構築されたす。

申し蚳ありたせんが、無芖しおください。 ゚ラヌをログに蚘録する方法に問題があり、゚ラヌが再発しおいるように芋えたした。

@orodbhen docker -pyは䜿甚しおいたせん。これは、再珟可胜な小さなテストケヌスを䜜成するためにのみ䜿甚したした。 Docker CLIで発生しない理由は、クラむアントが入力をサヌバヌに枡す前にサニタむズするためですが、サヌバヌに盎接アクセスしおクリティカルセクションを倱敗させたいず思っおいたした。

バックグラりンドで実行されおいるサヌビスを削陀したす。
docker service rm service_name
次に、コンテナを衚瀺するDocker情報を確認したす0

削陀され、3277に再投皿されたした

次の゚ラヌでも同じ問題に盎面しおいたした。

   x Start Mongo: FAILED

-----------------------------------STDERR-----------------------------------
Error response from daemon: Cannot update container 78dc6f6a43d0e6cfb7aa6bba2f0a377bd39620bff79ca308540a13ddd4e62886: container is marked for removal and cannot be "update"
Error response from daemon: removal of container mongodb is already in progress
docker: Error response from daemon: Conflict. The container name "/mongodb" is already in use by container "78dc6f6a43d0e6cfb7aa6bba2f0a377bd39620bff79ca308540a13ddd4e62886". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
-----------------------------------STDOUT-----------------------------------
3.4.1: Pulling from library/mongo
Digest: sha256:aff0c497cff4f116583b99b21775a8844a17bcf5c69f7f3f6028013bf0d6c00c
Status: Image is up to date for mongo:3.4.1
no such container
Running mongo:3.4.1

次のコマンドを実行したしたsudo service docker restart

そしお今、すべおがうたく機胜しおいたす。

たた、次の゚ラヌでこの問題に盎面しおいたした。

docker-compose up -d --no-build api
Creating api ... 
Creating api ... error

ERROR: for api  Cannot create container for service api: Conflict. The name "/api" is already in use by container 2788cdc091645f0dcef417f189f9c80fddd3f6f99eaba3771d0f4a87e2295841. You have to remove (or rename) that container to be able to reuse that name.

ERROR: for api  Cannot create container for service api: Conflict. The name "/api" is already in use by container 2788cdc091645f0dcef417f189f9c80fddd3f6f99eaba3771d0f4a87e2295841. You have to remove (or rename) that container to be able to reuse that name.
ERROR: Encountered errors while bringing up the project.

䜜成ファむルが配眮されおいるディレクトリは、既存のコンテナが実行されたずきず、コンテナを再実行しようずしたずきに名前が倉曎されたこずがわかりたした。 以䞋を実行しお確認したした。

docker inspect api | grep -i compose
"com.docker.compose.config-hash": "c0e3e88ad502faf806288e16419dc52b113cae18abeac1769fa0e98a741de48a",
"com.docker.compose.container-number": "1",
"com.docker.compose.oneoff": "False",
"com.docker.compose.project": "api",
"com.docker.compose.service": "api",
"com.docker.compose.version": "1.14.0"

プロゞェクトラベルがapiに蚭定されおいるこずに気付きたしたが、これを実行した珟圚のディレクトリは実際にはapi.gitあったため、前回の実行から珟圚たでの間に名前が倉曎されたようです。 ディレクトリの名前をapiに戻し、コンテナを再び起動し既存のコンテナを削陀したり、Dockerを再起動したりせずに、すべおが期埅どおりに機胜しおいたす。

倚くのコンテナが実行されおいるため、dockerの再起動は最適な゜リュヌションではありたせんでした。

docker container prune 、停止したコンテナを削陀したす。

コンテナを匷制的に削陀する必芁がありたしたdocker rm -f /<container_name>

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡