Redie在Docker容器中,没有附加自定义redis.conf文件

时间:2016-12-14 16:57:31

标签: ubuntu docker redis docker-compose

我在使用docker容器启动redis时遇到了麻烦。我跑的时候

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

这是我的docker-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

这是我得到的详细输出:

ubuntu@ip-10-0-1-172:~/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没有给我任何东西

docker logs redis_redis_1

什么都没给我

docker logs output

任何帮助表示赞赏

1 个答案:

答案 0 :(得分: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

要查找我的自定义配置文件,请使用。

因为我将配置文件映射到默认目录,我想我得到了那个输出。所以,没有问题。

这是我最终得到的docker-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