docker 官方的 redis 镜像如何指定配置文件。
仅有的幸福
仅有的幸福 2017-04-27 09:01:49
0
1
847

参考 docker store 里 redis 镜像的使用 帮助:

Alternatively, you can specify something along the same lines with docker run options.
$ docker run -v /myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf
Where /myredis/conf/ is a local directory containing your redis.conf file. Using this method means that there is no need for you to have a Dockerfile for your redis container.

首先我创建了一个目录/docker/redis/并在其中放置配置文件:redis.conf

接下来,我使用下面的代码启动镜像:

> docker run -v /docker/redis:/data --name my-redis -d redis redis-server /data/redis.conf

再用docker inspect [containerId]查看刚刚创建的容器发现容器启动后立即就退出了:

"State": { "Status": "exited", "Running": false, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 0, "ExitCode": 0, "Error": "", "StartedAt": "2017-02-07T03:15:46.558191922Z", "FinishedAt": "2017-02-07T03:15:46.973984747Z" }, ...

另外,我尝试不指定配置文件,只挂着/data目录,是没有问题,可以顺利启动:

> docker run -v /docker/redis:/data -d redis

好像找到原因了。我将redis.conf中的daemonize yes注释掉即可运行!但这是什么原因?

docker-entrypoint.sh

#!/bin/sh set -e # first arg is `-f` or `--some-option` # or first arg is `something.conf` if [ "${1#-}" != "$1" ] || [ "${1%.conf}" != "$1" ]; then set -- redis-server "$@" fi # allow the container to be started with `--user` if [ "$1" = 'redis-server' -a "$(id -u)" = '0' ]; then chown -R redis . exec gosu redis "$0" "$@" fi exec "$@"

上面是官方 redis 镜像的 entrypoint 脚本,shell 脚本不了解,查了一下第一行set -e的意思是:"若指令传回值不等于 0 ,则立即退出 shell",和这个有关吗?又或者和docker run-d参数有关系?"Run container in background and print container ID"

仅有的幸福
仅有的幸福

reply all (1)
phpcn_u1582

This is how I started it

docker run -d -ti \ -p 7481:6379 \ -v /project/pos/conf/redis.conf:/etc/redis/redis.conf \ -v /project/pos/data:/data \ --restart always \ --name pos_redis \ daocloud.io/redis \ redis-server /etc/redis/redis.conf
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!