2017-09-25 83 views
-1

正如標題所述。 Docker-Compose在運行容器時非常慢。它一直說它試圖附加到...當我運行「碼頭 - 組成」。在python腳本運行之前大約需要10分鐘。碼頭 - 撰寫非常緩慢但碼頭工人在Linux上運行非常快

另一方面..如果我開始「碼頭 - 撰寫運行碼頭 - 構建」python腳本運行在第二個。

如果我使用「碼頭運行--rm -it Name_of_docker_image」python腳本也運行在第二個。

爲什麼我需要等待10分鐘才能啓動docker-compose的python腳本?

➜ stack git:(master) ✗ docker --version 
Docker version 17.06.2-ce, build cec0b72 
➜ stack git:(master) ✗ docker-compose --version 
docker-compose version 1.16.1, build 6d1ac21 

➜ stack git:(master) ✗ netstat -tln 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address   Foreign Address   State  
tcp  0  0 0.0.0.0:5355   0.0.0.0:*    LISTEN  
tcp  0  0 127.0.0.1:631   0.0.0.0:*    LISTEN  
tcp  0  0 127.0.0.1:5432   0.0.0.0:*    LISTEN  
tcp6  0  0 :::5355     :::*     LISTEN  
tcp6  0  0 ::1:631     :::*     LISTEN 

「泊塢窗,compose.yml:」

version: "3" 
services: 
    docker-build: 
    build: ./ 
    ports: 
    - "4242:5000" 

「Dockerfile:」

FROM ubuntu:16.04 
# Ubuntu 
RUN apt-get update 
COPY ./
CMD ["/usr/bin/python", "run.py"] 

「run.py」

#!/usr/bin/python 
import time 

a = 0 
while True: 
    a += 1 
    print("Number of seconds past > {}".format(a)) 
    time.sleep(1) 

提前感謝!

編輯 完整的日誌

➜ minerva_stack git:(master) ✗ docker-compose --verbose up 
compose.config.config.find: Using configuration files: ./docker-compose.yml 
docker.auth.find_config_file: Trying paths: ['/home/mikelaptop/.docker/config.json', '/home/mikelaptop/.dockercfg'] 
docker.auth.find_config_file: No config file found 
compose.cli.command.get_client: docker-compose version 1.16.1, build 6d1ac21 
docker-py version: 2.5.1 
CPython version: 2.7.13 
OpenSSL version: OpenSSL 1.0.1t 3 May 2016 
compose.cli.command.get_client: Docker base_url: http+docker://localunixsocket 
compose.cli.command.get_client: Docker version: KernelVersion=4.10.0-35-generic, Arch=amd64, BuildTime=2017-09-05T19:57:44.123196188+00:00, ApiVersion=1.30, Version=17.06.2-ce, MinAPIVersion=1.12, GitCommit=cec0b72, Os=linux, GoVersion=go1.8.3 
compose.cli.verbose_proxy.proxy_callable: docker info <-() 
compose.cli.verbose_proxy.proxy_callable: docker info -> {u'Architecture': u'x86_64', 
u'BridgeNfIp6tables': True, 
u'BridgeNfIptables': True, 
u'CPUSet': True, 
u'CPUShares': True, 
u'CgroupDriver': u'cgroupfs', 
u'ClusterAdvertise': u'', 
u'ClusterStore': u'', 
u'ContainerdCommit': {u'Expected': u'6e23458c129b551d5c9871e5174f6b1b7f6d1170', 
        u'ID': u'6e23458c129b551d5c9871e5174f6b1b7f6d1170'}, 
... 
compose.cli.verbose_proxy.proxy_callable: docker inspect_network <- (u'minervastack_default') 
compose.cli.verbose_proxy.proxy_callable: docker inspect_network -> {u'Attachable': False, 
u'ConfigFrom': {u'Network': u''}, 
u'ConfigOnly': False, 
u'Containers': {}, 
u'Created': u'2017-09-25T14:10:59.758868469+02:00', 
u'Driver': u'bridge', 
u'EnableIPv6': False, 
u'IPAM': {u'Config': [{u'Gateway': u'172.18.0.1', 
        u'Subnet': u'172.18.0.0/16'}], 
     u'Driver': u'default', 
... 
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={u'label': [u'com.docker.compose.project=minervastack', 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=minervastack', u'com.docker.compose.service=docker-build', u'com.docker.compose.oneoff=False']}) 
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 1 items) 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- (u'a2ed9143cd91fe2513405a63c94f6e60d9f78d5b011b4e237b6e13000c6d5d3b') 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {u'AppArmorProfile': u'docker-default', 
u'Args': [u'run.py'], 
u'Config': {u'ArgsEscaped': True, 
     u'AttachStderr': False, 
     u'AttachStdin': False, 
     u'AttachStdout': False, 
     u'Cmd': [u'/usr/bin/python', u'run.py'], 
     u'Domainname': u'', 
     u'Entrypoint': None, 
     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 <- (u'minervastack_docker-build') 
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'/usr/bin/python', u'run.py'], 
     u'Domainname': u'', 
     u'Entrypoint': None, 
... 
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={u'label': [u'com.docker.compose.project=minervastack', u'com.docker.compose.service=docker-build', u'com.docker.compose.oneoff=False']}) 
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 1 items) 
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- (u'minervastack_docker-build') 
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'/usr/bin/python', u'run.py'], 
     u'Domainname': u'', 
     u'Entrypoint': None, 
... 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- (u'a2ed9143cd91fe2513405a63c94f6e60d9f78d5b011b4e237b6e13000c6d5d3b') 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {u'AppArmorProfile': u'docker-default', 
u'Args': [u'run.py'], 
u'Config': {u'ArgsEscaped': True, 
     u'AttachStderr': False, 
     u'AttachStdin': False, 
     u'AttachStdout': False, 
     u'Cmd': [u'/usr/bin/python', u'run.py'], 
     u'Domainname': u'', 
     u'Entrypoint': None, 
     u'Env': [u'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'], 
... 
compose.service._containers_have_diverged: minervastack_docker-build_1 has diverged: 7780d5caeeb57c4d4b31e0170604a9127a5e560f39551d48dee0fd0e31de8b77 != 47a8bfe707f4f0d002ae10ba5058fa5167db1f6e6c2166a2a1d9580dcbfc45fb 
compose.parallel.feed_queue: Pending: set([<Service: docker-build>]) 
compose.parallel.feed_queue: Starting producer thread for <Service: docker-build> 
Recreating minervastack_docker-build_1 ... 
compose.parallel.feed_queue: Pending: set([<Container: minervastack_docker-build_1 (a2ed91)>]) 
compose.parallel.feed_queue: Starting producer thread for <Container: minervastack_docker-build_1 (a2ed91)> 
compose.service.recreate_container: Recreating minervastack_docker-build_1 
compose.cli.verbose_proxy.proxy_callable: docker stop <- (u'a2ed9143cd91fe2513405a63c94f6e60d9f78d5b011b4e237b6e13000c6d5d3b', timeout=10) 
compose.cli.verbose_proxy.proxy_callable: docker stop -> None 
compose.cli.verbose_proxy.proxy_callable: docker rename <- (u'a2ed9143cd91fe2513405a63c94f6e60d9f78d5b011b4e237b6e13000c6d5d3b', u'a2ed9143cd91_minervastack_docker-build_1') 
compose.cli.verbose_proxy.proxy_callable: docker rename -> None 
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- (u'minervastack_docker-build') 
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'/usr/bin/python', u'run.py'], 
     u'Domainname': u'', 
     u'Entrypoint': None, 
... 
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- (u'sha256:f421c2e81f499f49254753aa3d5b91ab6fe5b8afc2573b3797bd09730bf27ef3') 
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'/usr/bin/python', u'run.py'], 
     u'Domainname': u'', 
     u'Entrypoint': None, 
... 
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- (u'minervastack_docker-build') 
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'/usr/bin/python', u'run.py'], 
     u'Domainname': u'', 
     u'Entrypoint': None, 
... 
compose.service.build_container_labels: Added config hash: 47a8bfe707f4f0d002ae10ba5058fa5167db1f6e6c2166a2a1d9580dcbfc45fb 
compose.cli.verbose_proxy.proxy_callable: docker create_host_config <- (device_read_iops=None, mem_swappiness=None, links=[], oom_score_adj=None, cpu_count=None, pids_limit=None, cpuset_cpus=None, dns_search=None, pid_mode=None, init_path=None, log_config={'Type': u'', 'Config': {}}, cpu_quota=None, read_only=None, cpu_percent=None, device_read_bps=None, storage_opt=None, init=None, dns=None, volumes_from=[], ipc_mode=None, mem_reservation=None, security_opt=None, shm_size=None, device_write_iops=None, dns_opt=None, cgroup_parent=None, group_add=None, network_mode=u'minervastack_default', blkio_weight_device=None, userns_mode=None, tmpfs=None, nano_cpus=None, port_bindings={'5000/tcp': ['4242']}, isolation=None, memswap_limit=None, restart_policy=None, volume_driver=None, devices=None, extra_hosts=None, binds=[], sysctls=None, blkio_weight=None, device_write_bps=None, cap_add=None, mem_limit=None, cap_drop=None, privileged=False, ulimits=None, cpu_shares=None) 
compose.cli.verbose_proxy.proxy_callable: docker create_host_config -> {'Binds': [], 
'Links': [], 
'LogConfig': {'Config': {}, 'Type': u''}, 
'NetworkMode': u'minervastack_default', 
'PortBindings': {'5000/tcp': [{'HostIp': '', 'HostPort': '4242'}]}, 
'VolumesFrom': []} 
compose.cli.verbose_proxy.proxy_callable: docker create_container <- (name=u'minervastack_docker-build_1', image=u'minervastack_docker-build', labels={u'com.docker.compose.service': u'docker-build', u'com.docker.compose.project': u'minervastack', u'com.docker.compose.config-hash': '47a8bfe707f4f0d002ae10ba5058fa5167db1f6e6c2166a2a1d9580dcbfc45fb', u'com.docker.compose.version': u'1.16.1', u'com.docker.compose.oneoff': u'False', u'com.docker.compose.container-number': '1'}, host_config={'NetworkMode': u'minervastack_default', 'Links': [], 'PortBindings': {'5000/tcp': [{'HostPort': '4242', 'HostIp': ''}]}, 'Binds': [], 'LogConfig': {'Type': u'', 'Config': {}}, 'VolumesFrom': []}, environment=[], volumes={}, detach=True, ports=[(u'5000', u'tcp')], networking_config={u'EndpointsConfig': {u'minervastack_default': {u'IPAMConfig': {}, u'Aliases': ['docker-build']}}}) 
compose.parallel.feed_queue: Pending: set([]) 
compose.parallel.feed_queue: Pending: set([]) 
compose.cli.verbose_proxy.proxy_callable: docker create_container -> {u'Id': u'7167233b39bc991d11cd502dd9f4bc680c5a1341a8f9fc1ff321429b3287dc18', 
u'Warnings': None} 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- (u'7167233b39bc991d11cd502dd9f4bc680c5a1341a8f9fc1ff321429b3287dc18') 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {u'AppArmorProfile': u'', 
u'Args': [u'run.py'], 
u'Config': {u'ArgsEscaped': True, 
     u'AttachStderr': False, 
     u'AttachStdin': False, 
     u'AttachStdout': False, 
     u'Cmd': [u'/usr/bin/python', u'run.py'], 
     u'Domainname': u'', 
     u'Entrypoint': None, 
     u'Env': [u'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'], 
... 
compose.cli.verbose_proxy.proxy_callable: docker attach <- (u'7167233b39bc991d11cd502dd9f4bc680c5a1341a8f9fc1ff321429b3287dc18', stderr=True, stream=True, stdout=True) 
compose.cli.verbose_proxy.proxy_callable: docker attach -> <generator object frames_iter at 0x7f7552800460> 
compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network <- (u'7167233b39bc991d11cd502dd9f4bc680c5a1341a8f9fc1ff321429b3287dc18', u'minervastack_default') 
compose.cli.verbose_proxy.proxy_callable: docker disconnect_container_from_network -> None 
compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network <- (u'7167233b39bc991d11cd502dd9f4bc680c5a1341a8f9fc1ff321429b3287dc18', u'minervastack_default', ipv4_address=None, link_local_ips=None, ipv6_address=None, links=[], aliases=[u'7167233b39bc', 'docker-build']) 
compose.cli.verbose_proxy.proxy_callable: docker connect_container_to_network -> None 
compose.cli.verbose_proxy.proxy_callable: docker start <- (u'7167233b39bc991d11cd502dd9f4bc680c5a1341a8f9fc1ff321429b3287dc18') 
compose.parallel.feed_queue: Pending: set([]) 
compose.parallel.feed_queue: Pending: set([]) 
compose.parallel.feed_queue: Pending: set([]) 
compose.parallel.feed_queue: Pending: set([]) 
compose.parallel.feed_queue: Pending: set([]) 
compose.parallel.feed_queue: Pending: set([]) 
compose.parallel.feed_queue: Pending: set([]) 
compose.parallel.feed_queue: Pending: set([]) 
compose.cli.verbose_proxy.proxy_callable: docker start -> None 
compose.cli.verbose_proxy.proxy_callable: docker remove_container <- (u'a2ed9143cd91fe2513405a63c94f6e60d9f78d5b011b4e237b6e13000c6d5d3b') 
compose.cli.verbose_proxy.proxy_callable: docker remove_container -> None 
Recreating minervastack_docker-build_1 ... done 
compose.parallel.feed_queue: Pending: set([]) 
compose.parallel.parallel_execute_iter: Finished processing: <Service: docker-build> 
compose.parallel.feed_queue: Pending: set([]) 
Attaching to minervastack_docker-build_1 
compose.cli.verbose_proxy.proxy_callable: docker events <- (decode=True, filters={u'label': [u'com.docker.compose.project=minervastack', u'com.docker.compose.oneoff=False']}) 
compose.cli.verbose_proxy.proxy_callable: docker events -> <generator object _stream_helper at 0x7f7552800780> 
+0

可以提供完整的記錄所採取的「構成」? – yamenk

+0

我投票結束這個問題,因爲它是如何使一個應用程序運行在Linux上,而不是編程,應該問unix.stackexchange.com – Rob

+1

@Rob這是一個問題,而不是如何 – Annihilator708

回答

2

的問題是,因爲緩衝日誌。您應該改變

CMD ["/usr/bin/python", "run.py"] 

CMD ["/usr/bin/python", "-u", "run.py"] 

還是應該更新docker-compose.yml

version: "3" 
services: 
    docker-build: 
    build: ./ 
    ports: 
    - "4242:5000" 
    environment: 
     - "PYTHONUNBUFFERED=1" 

PS:運行`泊塢窗時從http://tarunlalwani.com/post/why-delayed-output-python-docker/