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.

μ€‘μš”ν•˜λ‹€κ³  μƒκ°ν•˜λŠ” μΆ”κ°€ 정보 (예 : λ¬Έμ œκ°€ 가끔 λ°œμƒ 함) :
λ¬Έμ œλŠ” 자주, 맀주 λ˜λŠ” λ³€κ²½ 및 톡합 νšŸμˆ˜μ— 따라 일주일에 두 번 λ°œμƒν•©λ‹ˆλ‹€.
μ»¨ν…μŠ€νŠΈλ₯Ό λ‹€μ‹œ 정리해도 λ¬Έμ œκ°€ ν•΄κ²°λ˜μ§€ μ•Šκ³  도컀λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•˜μ§€λ„ μ•ŠμŠ΅λ‹ˆλ‹€. μœ μΌν•œ 해결책은 도컀λ₯Ό μ€‘μ§€ν•˜κ³  /var/lib/docker/* (λ‚΄ κ²½μš°μ—λŠ” / mnt / docker-data)의 λͺ¨λ“  λ‚΄μš©μ„ μ œκ±°ν•˜κ³  도컀λ₯Ό μ‹œμž‘ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

kinbug statumore-info-needed versio1.11

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

λ‚˜λŠ” λͺ¨λ“  것을 ν•΅λ¬΄κΈ°μ‹œν‚€λŠ” λ„μš°λ―Έ κΈ°λŠ₯을 κ°€μ§€κ³ μžˆμ–΄μ„œ 우리의 지속적인 blah, cycle을 ν…ŒμŠ€νŠΈ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 기본적으둜 λ‹€μŒκ³Ό 같이 μš”μ•½λ©λ‹ˆλ‹€.

용기λ₯Ό μ§€μš°λ €λ©΄ :

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 λŒ“κΈ€

κ·Έ μš©κΈ°λ“€μ„ μ–΄λ–»κ²Œ μ²­μ†Œ ν–ˆμ–΄? μ΄λŸ¬ν•œ λ¦¬μ†ŒμŠ€ (λ³Όλ₯¨ λ„€νŠΈμ›Œν¬ λ“± 포함)λ₯Ό μ •λ¦¬ν•˜λŠ” μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

λ‚˜λŠ” λͺ¨λ“  것을 ν•΅λ¬΄κΈ°μ‹œν‚€λŠ” λ„μš°λ―Έ κΈ°λŠ₯을 κ°€μ§€κ³ μžˆμ–΄μ„œ 우리의 지속적인 blah, cycle을 ν…ŒμŠ€νŠΈ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 기본적으둜 λ‹€μŒκ³Ό 같이 μš”μ•½λ©λ‹ˆλ‹€.

용기λ₯Ό μ§€μš°λ €λ©΄ :

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)

그런 λ‹€μŒ 도컀 λ‹€μ‹œ μ‹œμž‘

$ sudo service docker restart

λ–Όλ₯Ό λ‹€μ‹œ λ§Œλ“€λ©΄ λ¬Έμ œκ°€ ν•΄κ²°λ©λ‹ˆλ‹€.

λ‹€μŒμ€ 일반적인 μ‹€νŒ¨μ˜ λ‘œκ·Έμž…λ‹ˆλ‹€. ansible을 μ‚¬μš©ν•˜μ—¬ swarm에 λŒ€ν•΄ swarm λ…Έλ“œ 쀑 ν•˜λ‚˜μ—μ„œ docker compose λͺ…령을 μ‹€ν–‰ν•©λ‹ˆλ‹€.

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"μ΄λΌλŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό μˆ˜λ™μœΌλ‘œ μ œκ±°ν•˜λ €κ³ ν–ˆμ§€λ§Œ 어디에도 μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

거기에도 같은 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ”μ£ΌκΈ°λ₯Ό 자주 λ°˜λ³΅ν•œλ‹€.

  • 도컀 쀑지 % name %
  • 도컀 rm -f % name %
  • 도컀 ν’€ % name %
  • 도컀 μ‹€ν–‰ % name %

μ–΄λŠ μ‹œμ  (2 ~ 3 일)에 μž‘λ™μ΄ μ€‘μ§€λ©λ‹ˆλ‹€.
docker : 데λͺ¬μ˜ 였λ₯˜ 응닡 : 좩돌. 이름 "% name %"은 (λŠ”) % container_id % μ»¨ν…Œμ΄λ„ˆμ—μ„œ 이미 μ‚¬μš© 쀑 μž…λ‹ˆλ‹€. ν•΄λ‹Ή 이름을 λ‹€μ‹œ μ‚¬μš©ν•˜λ €λ©΄ ν•΄λ‹Ή μ»¨ν…Œμ΄λ„ˆλ₯Ό 제거 (λ˜λŠ” 이름 λ³€κ²½)ν•΄μ•Όν•©λ‹ˆλ‹€.

% container_id % μ»¨ν…Œμ΄λ„ˆλ₯Ό μˆ˜λ™μœΌλ‘œ μ œκ±°ν•˜λ €κ³ ν•˜λ©΄ λ‹€μŒκ³Ό 같이 ν‘œμ‹œλ©λ‹ˆλ‹€.
μ»¨ν…Œμ΄λ„ˆλ₯Ό μ œκ±°ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€ (% container_id %) : 데λͺ¬μ—μ„œ 였λ₯˜ 응닡 : ν•΄λ‹Ή μ»¨ν…Œμ΄λ„ˆ μ—†μŒ : % container_id %

μ»¨ν…Œμ΄λ„ˆ % container_id %κ°€ λͺ©λ‘ docker ps -a에없고 / var / lib / docker / containers 폴더에 μ—†μŠ΅λ‹ˆλ‹€.

문제의 원인은 -f 맀개 λ³€μˆ˜λ‘œ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ œκ±°ν•˜λŠ” κ²ƒμž…λ‹ˆκΉŒ? κ·Έλž˜μ„œ λ„μ»€λŠ” μ˜¬λ°”λ₯΄κ²Œ μ •λ¦¬λ˜μ§€ μ•Šκ³  도컀 데λͺ¬μ€ μ»¨ν…Œμ΄λ„ˆκ°€ 아직 거기에 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.


Docker 버전 좜λ ₯ :

고객:
버전 : 1.10.3
API 버전 : 1.22
Go 버전 : go1.5.3
νž˜λ‚΄ 컀밋 : 8acee1b
μ„Έμ›Œμ§:
OS / μ•„μΉ˜ : linux / amd64

μ„¬κΈ°λŠ” μ‚¬λžŒ:
버전 : 1.10.3
API 버전 : 1.22
Go 버전 : go1.5.3
νž˜λ‚΄ 컀밋 : 8acee1b
μ„Έμ›Œμ§:
OS / μ•„μΉ˜ : linux / amd64

Docker 정보 좜λ ₯ :

μ»¨ν…Œμ΄λ„ˆ : 27
달리기 : 13
μΌμ‹œ 쀑지됨 : 0
쀑지됨 : 14
이미지 : 1512
μ„œλ²„ 버전 : 1.10.3
μŠ€ν† λ¦¬μ§€ λ“œλΌμ΄λ²„ : devicemapper
ν’€ 이름 : docker-8 : 9-521647-pool
ν’€ 블둝 크기 : 65.54 kB
κΈ°λ³Έ μž₯치 크기 : 107.4GB
λ°±μ—… 파일 μ‹œμŠ€ν…œ : xfs
데이터 파일 : / dev / loop2
메타 데이터 파일 : / dev / loop3
μ‚¬μš© 된 데이터 곡간 : 53.62GB
총 데이터 곡간 : 107.4GB
μ‚¬μš© κ°€λŠ₯ν•œ 데이터 곡간 : 53.76GB
μ‚¬μš© 된 메타 데이터 곡간 : 129.9MB
총 메타 데이터 곡간 : 2.147GB
μ‚¬μš© κ°€λŠ₯ν•œ 메타 데이터 곡간 : 2.018GB
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)
μ‹€ν–‰ λ“œλΌμ΄λ²„ : native-0.2
λ‘œκΉ… λ“œλΌμ΄λ²„ : json-file
ν”ŒλŸ¬κ·ΈμΈ :
λ³Όλ₯¨ : 둜컬
λ„€νŠΈμ›Œν¬ : 호슀트 λΈŒλ¦¬μ§€ null
컀널 버전 : 4.5.0-coreos-r1
운영 체제 : CoreOS 1010.5.0 (MoreOS)
OSType : λ¦¬λˆ…μŠ€
μ•„ν‚€ν…μ²˜ : x86_64
CPU : 8
총 λ©”λͺ¨λ¦¬ : 11.74GiB
이름 : xx-slave
ID : LVGE : QBNA : DXFP : AWR7 : NAVO : LQLR : 7 CGF : UDOF : CTES : VZQJ : SRZJ : JLKW

DockerλŠ” 'nameIndex'λ₯Ό μ‚¬μš©ν•˜μ—¬ μ»¨ν…Œμ΄λ„ˆμ— λŒ€ν•œ μ°Έμ‘°λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€. μ„€λͺ…μ—μ„œ nameIndex κ°€ 제거 된 μ»¨ν…Œμ΄λ„ˆμ™€ λ™κΈ°ν™”λ˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— λ¬Έμ œκ°€ λ°œμƒν•œ κ²ƒμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€. μ—¬κΈ°μ„œ 였λ₯˜κ°€ λ°˜ν™˜λ©λ‹ˆλ‹€.

μΌμ‹œμ μœΌλ‘œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ™κΈ°ν™”λ˜μ§€ μ•Šμ€ nameIndexλ₯Ό 정리할 수 μžˆμŠ΅λ‹ˆλ‹€. dockerλŠ” nameIndex 외에도 μ—¬λŸ¬ 인덱슀 (예 : linkIndex)λ₯Ό μ‚¬μš©ν•˜λ―€λ‘œ 정리가 ν•„μš”ν•œ 곳이 μ—¬λŸ¬ κ°œμžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. λ™κΈ°ν™”λ˜μ§€ μ•Šμ€ μœ„μΉ˜λ₯Ό μ°ΎλŠ” 것이 μž₯기적으둜 더 λ‚˜μ€ μ†”λ£¨μ…˜ 일 수 μžˆμŠ΅λ‹ˆλ‹€.

λ™κΈ°ν™”λ˜μ§€ μ•Šμ€ nameIndexλ₯Ό μ •λ¦¬ν•˜λŠ” 방법이 μžˆμŠ΅λ‹ˆκΉŒ?
ν˜„μž¬ λ‚΄κ°€ 가진 μœ μΌν•œ 해결책은 쒋지 μ•Šμ€ λ…Έλ“œλ₯Ό μž¬λΆ€νŒ…ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. Docker 데λͺ¬μ„ μž¬λΆ€νŒ…ν•˜λŠ” 것도 쒋지 μ•ŠμŠ΅λ‹ˆλ‹€.

λ‚˜λ₯Ό μœ„ν•΄ μž‘λ™ν•˜λŠ” 것은 도컀 데λͺ¬μ„ μ€‘μ§€ν•˜κ³  /var/lib/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 및 Docker 1.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 μ•„λž˜μ— 폴더가 μžˆμ—ˆκ³  μ œκ±°ν–ˆμ§€λ§Œ μ—¬μ „νžˆ 운이 μ—†μŠ΅λ‹ˆλ‹€. 도컀 데λͺ¬μ„ λ‹€μ‹œ μ‹œμž‘ν–ˆλŠ”λ° μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.

https://github.com/docker/compose/issues/3277#issuecomment -238080180에 λŒ€ν•œμ΄ ν•΄κ²° 방법도이 문제λ₯Ό ν•΄κ²°ν•©λ‹ˆλ‹€ ...

@marcelmfs λ‚˜λ₯Ό μœ„ν•΄ μ•„λ‹™λ‹ˆλ‹€. /var/lib/docker 전체λ₯Ό μ‚­μ œν•΄μ•Όν•©λ‹ˆλ‹€.

μ΄μƒν•©λ‹ˆλ‹€. μ €μ—κ²ŒλŠ” κ·Έλƒ₯ νš¨κ³Όκ°€μžˆμ—ˆμŠ΅λ‹ˆλ‹€. ν™•μ‹€ν•˜κ²Œ ν•œ 번 더 ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

@marcelmfs κ·Έλž˜μ„œ 방금 docker / network / files / local-kv.dbλ₯Ό μ‚­μ œ ν–ˆμŠ΅λ‹ˆκΉŒ?

뿐만 μ•„λ‹ˆλΌ 싀행쀑인 λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆ docker rm -f $(docker ps -aq) 및 λͺ¨λ“  λ„€νŠΈμ›Œν¬λ₯Ό μ œκ±°ν–ˆμŠ΅λ‹ˆλ‹€. network/files/local-kv.db 도 μ œκ±°ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

도컀 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() μ˜ν•΄ μ—…λ°μ΄νŠΈλ©λ‹ˆλ‹€.

이 λ‘˜ 사이에 였λ₯˜κ°€ λ°œμƒν•˜λ©΄ dockerλŠ” μΌκ΄€λ˜μ§€ μ•Šμ€ μƒνƒœμž…λ‹ˆλ‹€. https://github.com/docker/docker/commit/114be249f022535f0800bd45987c4e9cd1b321a4(1.12.0에 μ°©λ₯™) μ»€λ°‹ν•˜κΈ° 전에 문제λ₯Ό νŠΈλ¦¬κ±°ν•˜λŠ” 데 ν•„μš”ν•œ μ „λΆ€μ˜€μŠ΅λ‹ˆλ‹€. 이 컀밋은 정리 κΈ°λŠ₯을 docker.ContainerRm μ—μ„œ λ³€κ²½ν–ˆμŠ΅λ‹ˆλ‹€.이 경우 μ—λŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό 등둝해야 ν•˜κΈ° λ•Œλ¬Έμ— μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. docker.cleanupContainer .

κ·ΈλŸ¬λ‚˜ docker.cleanupContainer λŠ” 정리λ₯Ό κ΄€λ¦¬ν•˜κΈ° 전에 μ‹€νŒ¨ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. nameIndex 113 ν–‰μ˜ ν•­λͺ© 만 μ‚­μ œν•˜μ§€λ§Œ κ·Έ μ „μ—λŠ” 잘λͺ» 될 μˆ˜μžˆλŠ” 일이 많이 μžˆμŠ΅λ‹ˆλ‹€.

μœ„μ˜ λͺ¨λ“  λ‚΄μš©μ€ nameIndex κ°€ λ””μŠ€ν¬μ— μœ μ§€λ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— κ°„λ‹¨ν•œ 데λͺ¬ λ‹€μ‹œ μ‹œμž‘μœΌλ‘œ λ¬Έμ œκ°€ ν•΄κ²°λ˜λŠ” 경우λ₯Ό μ„€λͺ…ν•©λ‹ˆλ‹€. 이 버그가 μž¬μ‹œμž‘μ—μ„œ μ–΄λ–»κ²Œ 살아남을 수 μžˆλŠ”μ§€ μ•Œμ•„λ³΄κΈ° μœ„ν•΄ μ½”λ“œμ— 머리λ₯Ό λΆ€λ”ͺ ν˜”μ§€λ§Œ 방법을 μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€. ν”„λ‘œλ•μ…˜μ—μ„œ ν™•μ‹€νžˆ λ³΄μ•˜μ§€λ§Œ ν˜„μž¬λŠ” λ‹€μ‹œ λ°œμƒν•˜κΈ°λ₯Ό 기닀리고 있으며 μΆ”κ°€ 쑰사λ₯Ό μ‹œλ„ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

# 27956μ—μ„œ 문제의 λ©”λͺ¨λ¦¬ λ‚΄ 버전을 μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.

이 λ¬Έμ œλŠ” μ΅œμ‹  버전 (1.12.3)으둜 μ—…λ°μ΄νŠΈν•˜κΈ° 전에 방금 λ‚˜νƒ€ 났고, 도컀λ₯Ό μ œκ±°ν•˜κ³  λ‹€μ‹œ μ„€μΉ˜ν–ˆμ§€λ§Œ μ•ˆνƒ€κΉκ²Œλ„ μ—¬μ „νžˆ λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€.

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

λ‚΄ μ›Œν¬ ν”Œλ‘œλŠ”μ΄ μŠ€λ ˆλ“œμ—μ„œ μ–ΈκΈ‰ ν•œ 것과 μ•½κ°„ λ‹€λ₯΄μ§€λ§Œ ν…ŒμŠ€νŠΈ 도ꡬ λͺ¨μŒμ—μ„œ μ»¨ν…Œμ΄λ„ˆλ₯Ό 많이 μ„€μ •ν•˜κ³  ν•΄μ²΄ν•œλ‹€λŠ” μ μ—μ„œ λΉ„μŠ·ν•©λ‹ˆλ‹€. Remote API에 λŒ€ν•œ μš”μ²­μ„ 톡해 μˆ˜ν–‰λ˜λŠ” 것도 ν₯미둜울 수 μžˆμŠ΅λ‹ˆλ‹€.

진행 방법에 λŒ€ν•΄ μ•½κ°„μ˜ 손싀이 μžˆμŠ΅λ‹ˆλ‹€. μš”μ²­ν•˜λ©΄ ν™•μ‹€νžˆ λ‚΄ 문제의 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό μ€€λΉ„ ν•  수 μžˆμ§€λ§Œ ν˜„μž¬λ‘œμ„œλŠ” μž‘μ—…μ€‘μΈ 더 큰 ν”„λ‘œμ νŠΈμ˜ μΌλΆ€μ΄λ―€λ‘œ μž‘μ—…μ„ μ€„μ—¬μ•Όν•©λ‹ˆλ‹€.

μ œμ•ˆ 사항이 μžˆμŠ΅λ‹ˆκΉŒ?

@davidglivar 데λͺ¬μ„ λ‹€μ‹œ μ‹œμž‘

@ cpuguy83 데λͺ¬μ„ λ‹€μ‹œ μ‹œμž‘ν•˜λ©΄ Windows μ•±μš© 도컀λ₯Ό 쀑지 / μ‹œμž‘ν•˜λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. 도컀λ₯Ό λ‹€μ‹œ μ„€μΉ˜ν•˜κ³  '곡μž₯'μž¬μ„€μ •μ„ μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€. λ‚΄λΆ€ μž‘λ™μ— 확신이 μ—†κΈ° λ•Œλ¬Έμ— Hyper-Vλ₯Ό λ§Œμ§€μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

@davidglivar κ·Έλž˜μ„œ 당신은 이것을보고 μžˆμŠ΅λ‹ˆλ‹€ :

  1. 물건을
  2. 였λ₯˜κ°€ λ°œμƒν•˜λ‹€
  3. docker4win λ‹€μ‹œ μ‹œμž‘
  4. 였λ₯˜κ°€ λ°œμƒν•˜λ‹€

?

νŠΈμœ— λ‹΄μ•„ κ°€κΈ° ν™•μΈν•˜κΈ° μœ„ν•΄ κ·Έ μ‹œν€€μŠ€λ₯Ό λͺ‡ 번 λ°Ÿμ•˜μŠ΅λ‹ˆλ‹€.

@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 에 inodeκ°€ μ—†μŠ΅λ‹ˆλ‹€.
  • /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 μ‚¬μš©ν•˜λŠ” docker shell λͺ…λ Ήμ—λŠ” λ¬Έμ œκ°€ μ—†μŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ 데λͺ¬μ΄ 생성 ν•œ 였λ₯˜ λ©”μ‹œμ§€λ₯Ό μΈμ‡„ν•˜λŠ” κ²ƒμ²˜λŸΌ 보이기 λ•Œλ¬Έμ— μ΄μƒν•©λ‹ˆλ‹€.

@petrosagg docker-py λŒ€μ‹  docker shell λͺ…령을 μ‚¬μš©ν•˜μ—¬ λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

@orodbhen docker-py μΈμŠ€ν„΄μŠ€κ°€ CLI와 λ™μΌν•œ 데λͺ¬κ³Ό ν†΅μ‹ ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?

싀행쀑인 데λͺ¬μ€ ν•˜λ‚˜λΏμž…λ‹ˆλ‹€. λ‘˜ λ‹€ /var/run/docker.sock ν•©λ‹ˆλ‹€.

docker-py에 λŒ€ν•œ 문제 λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ‚˜λŠ” 문제λ₯Ό μΌμœΌν‚€λŠ” 도컀와 κ΄€λ ¨λœ 근본적인 λ¬Έμ œκ°€ μ—†λ‹€κ³  아직 ν™•μ‹ ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€.

@orodbhen 데λͺ¬μ„ λ‹€μ‹œ μ‹œμž‘ν• 

데λͺ¬μ„ λ‹€μ‹œ μ‹œμž‘ν•œ 경우 μ°Έμ‘° 계산 λ¬Έμ œκ°€ 될 수 μ—†μŠ΅λ‹ˆλ‹€ . 이름 등둝 기관은 λ©”λͺ¨λ¦¬μ—λ§Œ λ³΄κ΄€λ˜λ©° 데λͺ¬ μž¬μ‹œμž‘μ‹œ λ‹€μ‹œ μž‘μ„±λ©λ‹ˆλ‹€.

μ£„μ†‘ν•©λ‹ˆλ‹€. λ¬΄μ‹œν•˜μ‹­μ‹œμ˜€. 였λ₯˜κ°€ λ‹€μ‹œ λ°œμƒν•˜λŠ” κ²ƒμ²˜λŸΌ 보이게 λ§Œλ“œλŠ” 였λ₯˜λ₯Ό λ‘œκΉ…ν•˜λŠ” 방식에 λ¬Έμ œκ°€μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

@orodbhen μ €λŠ” docker-pyλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ , μž¬ν˜„ κ°€λŠ₯ν•œ μž‘μ€ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό λ§Œλ“œλŠ” 데만 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. docker CLIμ—μ„œ λ°œμƒν•˜μ§€ μ•ŠλŠ” μ΄μœ λŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ μž…λ ₯을 μ„œλ²„λ‘œ μ „λ‹¬ν•˜κΈ° 전에 μž…λ ₯을 μ‚­μ œν•˜μ§€λ§Œ μ„œλ²„μ— 직접 μ•‘μ„ΈμŠ€ν•˜μ—¬ μ€‘μš” μ„Ήμ…˜μ΄ μ‹€νŒ¨ν•˜λ„λ‘ λ§Œλ“€κ³  μ‹ΆκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

λ°±κ·ΈλΌμš΄λ“œμ—μ„œ 싀행쀑인 μ„œλΉ„μŠ€λ₯Ό μ‚­μ œν•˜μ‹­μ‹œμ˜€.
도컀 μ„œλΉ„μŠ€ rm service_name
그런 λ‹€μŒ ckeck docker μ •λ³΄λŠ” c ontainers : 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 container prune .

docker rm -f /<container_name> μ»¨ν…Œμ΄λ„ˆλ₯Ό κ°•μ œλ‘œ μ œκ±°ν•΄μ•Όν–ˆμŠ΅λ‹ˆλ‹€.

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