2016-12-14 16 views
1

我在獲取redis以在Docker容器中啓動時遇到問題。當我運行Redis在Docker容器中沒有附加自定義redis.conf文件

docker-compose up 

我看到輸出

Starting redis_redis_1 
Attaching to redis_redis_1 
redis_redis_1 exited with code 0 

之後,我可以運行

docker ps -a 

看到 docker ps -a output

這是我的碼頭工人,compose.yml

redis: 
    image: redis 
    command: redis-server /usr/local/etc/redis/redis.conf 
    ports: 
     - "6379:6379" 
    volumes: 
     - /mnt/xvdb/redis/:/usr/local/etc/redis/ 
     - ./redis/redis.conf:/usr/local/etc/redis/redis.conf 

這是詳細的輸出,我得到:

[email protected]:~/redis$ docker-compose --verbose up --build 
compose.config.config.find: Using configuration files: ./docker-compose.yml 
docker.auth.auth.find_config_file: Trying paths: ['/home/ubuntu/.docker/config.json', '/home/ubuntu/.dockercfg'] 
docker.auth.auth.find_config_file: No config file found 
compose.cli.command.get_client: docker-compose version 1.9.0, build 2585387 
docker-py version: 1.10.6 
CPython version: 2.7.6 
OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014 
compose.cli.command.get_client: Docker base_url: http+docker://localunixsocket 
compose.cli.command.get_client: Docker version: KernelVersion=3.13.0-48-generic, Os=linux, BuildTime=2016-12-12T23:50:16.747144109+00:00, ApiVersion=1.24, Version=1.12.4, GitCommit=1564f02, Arch=amd64, GoVersion=go1.6.4 
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'Containers': 1, 
u'ContainersPaused': 0, 
... 
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={u'label': [u'com.docker.compose.project=redis', 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=redis', u'com.docker.compose.service=redis', 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'e8617d77bbdcdd36be35a130ea7afd764a8777d0b2d4df0700a5bf708ed63810') 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {u'AppArmorProfile': u'', 
u'Args': [u'redis-server', u'/usr/local/etc/redis/redis.conf'], 
u'Config': {u'AttachStderr': False, 
      u'AttachStdin': False, 
      u'AttachStdout': False, 
      u'Cmd': [u'redis-server', u'/usr/local/etc/redis/redis.conf'], 
      u'Domainname': u'', 
      u'Entrypoint': [u'docker-entrypoint.sh'], 
      u'Env': [u'affinity:container==3379fa24f2ec222251f97b39f194b629841b79e85707d62ee9a922becdb0cc40', 
         u'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 
... 
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('redis') 
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'redis-server'], 
      u'Domainname': u'', 
      u'Entrypoint': [u'docker-entrypoint.sh'], 
... 
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={u'label': [u'com.docker.compose.project=redis', u'com.docker.compose.service=redis', 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 <- ('redis') 
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'redis-server'], 
      u'Domainname': u'', 
      u'Entrypoint': [u'docker-entrypoint.sh'], 
... 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- (u'e8617d77bbdcdd36be35a130ea7afd764a8777d0b2d4df0700a5bf708ed63810') 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {u'AppArmorProfile': u'', 
u'Args': [u'redis-server', u'/usr/local/etc/redis/redis.conf'], 
u'Config': {u'AttachStderr': False, 
      u'AttachStdin': False, 
      u'AttachStdout': False, 
      u'Cmd': [u'redis-server', u'/usr/local/etc/redis/redis.conf'], 
      u'Domainname': u'', 
      u'Entrypoint': [u'docker-entrypoint.sh'], 
      u'Env': [u'affinity:container==3379fa24f2ec222251f97b39f194b629841b79e85707d62ee9a922becdb0cc40', 
         u'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 
... 
compose.parallel.feed_queue: Pending: set([<Service: redis>]) 
compose.parallel.feed_queue: Starting producer thread for <Service: redis> 
compose.service.start_container_if_stopped: Starting redis_redis_1 
compose.cli.verbose_proxy.proxy_callable: docker attach <- (u'e8617d77bbdcdd36be35a130ea7afd764a8777d0b2d4df0700a5bf708ed63810', stderr=True, stream=True, stdout=True) 
compose.cli.verbose_proxy.proxy_callable: docker attach -> <generator object frames_iter at 0x7fd372c02c80> 
compose.cli.verbose_proxy.proxy_callable: docker start <- (u'e8617d77bbdcdd36be35a130ea7afd764a8777d0b2d4df0700a5bf708ed63810') 
compose.parallel.feed_queue: Pending: set([]) 
compose.cli.verbose_proxy.proxy_callable: docker start -> None 
compose.parallel.parallel_execute_iter: Finished processing: <Service: redis> 
compose.parallel.feed_queue: Pending: set([]) 
Attaching to redis_redis_1 
compose.cli.verbose_proxy.proxy_callable: docker events <- (decode=True, filters={u'label': [u'com.docker.compose.project=redis', u'com.docker.compose.oneoff=False']}) 
compose.cli.verbose_proxy.proxy_callable: docker events -> <generator object _stream_helper at 0x7fd372c02e60> 
compose.cli.verbose_proxy.proxy_callable: docker wait <- (u'e8617d77bbdcdd36be35a130ea7afd764a8777d0b2d4df0700a5bf708ed63810') 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- (u'e8617d77bbdcdd36be35a130ea7afd764a8777d0b2d4df0700a5bf708ed63810') 
compose.cli.verbose_proxy.proxy_callable: docker wait -> 0 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {u'AppArmorProfile': u'', 
u'Args': [u'redis-server', u'/usr/local/etc/redis/redis.conf'], 
u'Config': {u'AttachStderr': False, 
      u'AttachStdin': False, 
      u'AttachStdout': False, 
      u'Cmd': [u'redis-server', u'/usr/local/etc/redis/redis.conf'], 
      u'Domainname': u'', 
      u'Entrypoint': [u'docker-entrypoint.sh'], 
      u'Env': [u'affinity:container==3379fa24f2ec222251f97b39f194b629841b79e85707d62ee9a922becdb0cc40', 
         u'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 
... 
redis_redis_1 exited with code 0 

搬運工日誌給我什麼

docker logs redis_redis_1 

給我什麼

docker logs output

任何幫助表示讚賞

+0

你得到什麼,當你做'搬運工日誌redis_redis_1'? –

+0

@PascalLeMerrer Nothing ...已更新問題(請參閱最後幾行) – smur89

+0

@ smur89您是否重新啓動了泊塢窗服務?我討厭這樣說,但我遇到過這類錯誤,重新啓動Docker經常修復它們。沒有信心鼓舞人心的,但如果它的工作... –

回答

0

因此,我能夠讓Redis以我認爲是默認配置文件的方式運行。因爲第一行顯示警告。

redis_1 | 1:C 19 Dec 12:30:29.397 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf 
redis_1 |     _._             
redis_1 |   _.-``__ ''-._            
redis_1 |  _.-`` `. `_. ''-._   Redis 3.2.6 (00000000/0) 64 bit 
redis_1 | .-`` .-```. ```\/ _.,_ ''-._         
redis_1 | ( '  ,  .-` | `, )  Running in standalone mode 
redis_1 | |`-._`-...-` __...-.``-._|'` _.-'|  Port: 6379 
redis_1 | | `-._ `._ / _.-' |  PID: 1 
redis_1 | `-._ `-._ `-./ _.-' _.-'         
redis_1 | |`-._`-._ `-.__.-' _.-'_.-'|         
redis_1 | | `-._`-._  _.-'_.-' |   http://redis.io   
redis_1 | `-._ `-._`-.__.-'_.-' _.-'         
redis_1 | |`-._`-._ `-.__.-' _.-'_.-'|         
redis_1 | | `-._`-._  _.-'_.-' |         
redis_1 | `-._ `-._`-.__.-'_.-' _.-'         
redis_1 |  `-._ `-.__.-' _.-'          
redis_1 |   `-._  _.-'           
redis_1 |    `-.__.-'            
redis_1 | 
redis_1 | 1:M 19 Dec 12:30:29.399 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 
redis_1 | 1:M 19 Dec 12:30:29.399 # Server started, Redis version 3.2.6 
redis_1 | 1:M 19 Dec 12:30:29.400 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 
redis_1 | 1:M 19 Dec 12:30:29.400 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. 
redis_1 | 1:M 19 Dec 12:30:29.400 * DB loaded from disk: 0.000 seconds 
redis_1 | 1:M 19 Dec 12:30:29.400 * The server is now ready to accept connections on port 6379 

這是什麼導致我的redis.conf文件在我原來的問題,我已經覆蓋默認命令。

之後我能夠檢查默認配置文件中的實際內容。

docker exec db00a03fd187 cat /usr/local/etc/redis/redis.conf 

找到我的自定義配置文件被使用。

因此,因爲我正在將我的配置文件映射到默認目錄,所以我想我會得到那個輸出。所以,沒有問題。

下面是我結束了我的搬運工,compose.yml文件:

redis: 
    image: redis 
    ports: 
     - "6379:6379" 
    volumes: 
     - ./redis/redis.conf:/usr/local/etc/redis/redis.conf 
     - /mnt/xvdb/redis:/usr/local/etc/redis