好久不见!忙了好久,终于,偷得半日闲。
今天同事要打包容器去第三方k8s部署,而在安装redis时出现了问题,设置的密码未生效或者找不到配置文件等问题。就想着自己写一个docker
安装redis
的教程以作记录,直接上代码。
docker run --name myredis -d redis
如果有写入操作,则60秒执行一次保存一次数据库快照。
docker run --name myredis -d redis redis-server --save 60 1 --loglevel warning
如需讲快照保存到本地,则docker命令为下面的命令:
如需自定义保存位置,可在 -v参数后修改保存位置
docker run -v /docker/host/dir:/data --name myredis -d redis redis-server --save 60 1 --loglevel warning
#或者映射当前目录至容器内,命令:
docker run -v $PWD:/data --name myredis -d redis redis-server --save 60 1 --loglevel warning
注意修改copy参数中本地文件路径
FROM redis
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
docker run -v /myredis/conf:/usr/local/etc/redis --name myredis redis redis-server /usr/local/etc/redis/redis.conf
如果你只是想单纯的部署一个redis,开启持久化,并且设置密码,以下的命令完全能满足你:
docker run -d --name myredis -p 6378:6379 redis --appendonly yes --requirepass password
问题详情:
[root@localhost data]# docker logs myredis
find: '.': Permission denied
chown: changing ownership of '.': Permission denied
volume
映射看下参数介绍:
[root@localhost data]# docker volume --help
Commands:
create Create a volume
inspect Display detailed information on one or more volumes
ls List volumes
prune Remove all unused volumes
rm Remove one or more volumes
创建及查看volume目录
[root@localhost data]# docker volume create redis_data
redis_data
[root@localhost data]# docker volume inspect redis_data
[
{
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/redis_data/_data",
"Name": "redis_data",
"Options": {},
"Scope": "local"
}
]
通过volume执行容器创建命令:
docker run -v redis_data:/data --name myredis -d redis
Mountpoint
就是系统生成的目录。
可在创建容器后通过新增删除测试容器内外效果。
注意:使用 volume 是不能指定 volume 位置的。可以通过软连接把目录映射出来。有兴趣的可以测试一下。命令给你们:
ln -s 源目录 目的目录
临时关闭
getenforce #查看SELinux状态 permissive关闭状态 enforcing开启状态
setenforce 0 #临时关闭
setenforce 1 #临时开启
永久关闭
编辑文件 /etc/selinux/config
文件
修改 SELINUX=enforcing
为SELINUX=permissive
详情:
Fatal error, can't open config file '/usr/local/etc/redis/redis.conf': No such file or directory
进入容器查看配置文件是否存在
自己去目录下看有没有
docker cp ./redis.conf myredis:/usr/local/etc/redis/redis.conf