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 νμ΄νΌ λ°μ΄μ κ°μλ μ¬μ€ ν΄λΌμ°λ.
λ¬Έμ μ¬ν λ¨κ³ :
λ°μ κ²°κ³Όλ₯Ό μ€λͺ νμμμ€.
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)μ λͺ¨λ λ΄μ©μ μ κ±°νκ³ λ컀λ₯Ό μμνλ κ²μ
λλ€.
κ·Έ μ©κΈ°λ€μ μ΄λ»κ² μ²μ νμ΄? μ΄λ¬ν 리μμ€ (λ³Όλ₯¨ λ€νΈμν¬ λ± ν¬ν¨)λ₯Ό μ 리νλ μ΄μ λ 무μμ λκΉ?
λλ λͺ¨λ κ²μ ν΅λ¬΄κΈ°μν€λ λμ°λ―Έ κΈ°λ₯μ κ°μ§κ³ μμ΄μ μ°λ¦¬μ μ§μμ μΈ 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"μ΄λΌλ 컨ν μ΄λλ₯Ό μλμΌλ‘ μ κ±°νλ €κ³ νμ§λ§ μ΄λμλ μ‘΄μ¬νμ§ μμ΅λλ€.
κ±°κΈ°μλ κ°μ λ¬Έμ κ° μμ΅λλ€.
λλμ£ΌκΈ°λ₯Ό μμ£Ό λ°λ³΅νλ€.
μ΄λ μμ (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 κ·Έλμ λΉμ μ μ΄κ²μλ³΄κ³ μμ΅λλ€ :
?
νΈμ λ΄μ κ°κΈ° νμΈνκΈ° μν΄ κ·Έ μνμ€λ₯Ό λͺ λ² λ°μμ΅λλ€.
@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>
컨ν
μ΄λλ₯Ό κ°μ λ‘ μ κ±°ν΄μΌνμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
λλ λͺ¨λ κ²μ ν΅λ¬΄κΈ°μν€λ λμ°λ―Έ κΈ°λ₯μ κ°μ§κ³ μμ΄μ μ°λ¦¬μ μ§μμ μΈ blah, cycleμ ν μ€νΈ ν μ μμ΅λλ€. κΈ°λ³Έμ μΌλ‘ λ€μκ³Ό κ°μ΄ μμ½λ©λλ€.
μ©κΈ°λ₯Ό μ§μ°λ €λ©΄ :
μ΄λ―Έμ§λ₯Ό μ§μ°λ €λ©΄ :
λ³Όλ₯¨μ μ§μ°λ €λ©΄ :
λ€νΈμν¬λ₯Ό μ§μ°λ €λ©΄ :