docker pull redis
#后面可以带上tag号, 默认拉取最新版本
安装之前去定义我们的redis.conf
文件, 这一步很重要,
在家目录新建文件目录 /root/conf
执行命令:
mkdir conf
chmod -R 777 conf
wget http://download.redis.io/redis-stable/redis.conf
docker run -p 6379:6379 --name myredis -v $PWD/conf/redis.conf:/etc/redis/redis.conf -v $PWD/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
$PWD/data:/data
上面命令里加上这个参数就可以持久化数据到宿主机里了 关闭再启用后数据也不会丢失
如果关闭重启后需要删除之前启动container的记录,不然会报容器的名字冲突
例:
[root@iZ2ze505h9bgsbp83ct28pZ ~]# docker run -p 6379:6379 --name myredis -v $PWD/conf/redis.conf:/etc/redis/redis.conf -v $PWD/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
docker: Error response from daemon: Conflict. The container name "/myredis" is already in use by container "0cc1c2eee857f7224bee22e151598052dc1c66689e8e4a1f235b21f13cda8520". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
[root@iZ2ze505h9bgsbp83ct28pZ ~]# docker rm myredis
myredis
[root@iZ2ze505h9bgsbp83ct28pZ ~]# docker run -p 6379:6379 --name myredis -v $PWD/conf/redis.conf:/etc/redis/redis.conf -v $PWD/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
081b3009f089a0ff0d92a5996d774bae8efff40d234d6dec2b5a1ed1bdf6ea28
4, 查看容器常用的命令
docker ps -a # 查看所有容器
docker ps # 查看正在运行的容器
docker rm myredis #移除指定容器
docker rm $(docker ps -a -q) #移除掉所有容器
docker restart container-id # 重启某个容器id或者容器名字
docker stop container-id # 关闭指定容器
5, 运行redis-cli 查看redis-server是否运行
执行命令:
docker exec -it container-id redis-cli
exit
6, 更改配置文件, 让宿主机可以访问redis-server
vim ~/conf/redis.conf
注释掉bind 127.0.0.1
,
修改protected-mode no
设置密码(根据自己的需要)
# requirepass foobared
requirepass yourpassword
然后重启容器, 让修改的配置文件生效, 执行命令:
docker restart container-id
# docker 安装redis 并配置外网可以访问
https://www.cnblogs.com/sandea/p/11769518.html
https://blog.csdn.net/flymoringbird/article/details/80717700
#Docker在windows下的使用. docker 安装与使用
https://www.cnblogs.com/jinjiangongzuoshi/p/6538321.html
参考:
https://blog.csdn.net/qq_39506912/article/details/89608131
//使用docker inspect命令获取容器/镜像的元数据。
docker inspect 容器id
//获取指定容器的ip
docker inspect --format '{{ .NetworkSettings.IPAddress }}' 68f0d84be6ad
//获取所有容器ip
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
语法
$ redis-cli -h host -p port -a password
-h 服务器地址 -p 端口号 -a 密码
$ redis-cli -h 182.92.***.*** -p 6379 -a whm***@qq.com
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
182.92.234.23:6379> get name
"haima"
182.92.234.23:6379>
docker run -d --link redis -p 5000:5000 --name flask-redis2 -e REDIS_HOST=redis wanghaima/flash-redis
-e REDIS_HOST=redis
是link到redis容器的container
原文:https://www.cnblogs.com/haima/p/12258294.html