docker desktop安装redis的实现步骤
作者:m0_74823878
1.拉取redis镜像
docker pull redis:latest
查看镜像
PS C:WindowsSystem32> docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis latest 0e403e3816e8 3 days ago 113MB mysql 5.7 ae552624b4bd 5 days ago 448MB docker/getting-started latest 26d80cd96d69 3 months ago 28.5MB hello-world latest feb5d9fea6a5 5 months ago 13.3kB
2.创建redis配置文件,为挂载操作做准备
在D盘创建2个文件夹
conf目录用于挂载配置文件
data目录用于存放数据持久化文件
在conf文件夹新建redis.conf文件,内容如下
#用守护线程的方式启动 后台运行 daemonize no #给redis设置密码 requirepass 123456 #redis持久化 默认是no appendonly yes #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300 tcp-keepalive 300
3.构建并启动redis容器
映射到宿主16379端口
docker run --name redis -p 16379:6379 -v /D/docker/redis/conf/redis.conf:/etc/redis/redis_6379.conf -v /D/docker/redis/data:/data/ -d redis:latest redis-server /etc/redis/redis_6379.conf --appendonly yes
–name=“容器新名字”:为容器指定一个名称
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-d: 后台运行容器,并返回容器ID
-v /D/docker/redis/conf/redis.conf:/etc/redis/redis_6379.conf 把宿主机配置好的redis.conf放到容器内的这个位置中
-v /D/docker/redis/data:/data/ 把redis持久化的数据在宿主机内显示,做数据备份
–net=host
4.查看容器已经在运行中
使用 QuickRedis客户端 测试链接
接下来就可以愉快的玩耍啦
进入容器
auth “123456” 注意是字符串格式的密码
redis-cli表示运行一个redis客户端 (-a 123456 指定密码)
业务代码key格式 采用 ** : 分割** user:token:10001
常见命令
keys * 匹配查找key 由于单线程 key很多时候 效率会降低 help @groupname ex: help @string 也可以直接命代码 tab会有提示 del key 删除一个key EXISTS key [key ...] 查看key是否存在 expier key 1 给key设置有效期单位秒 ttl key 查看key的有效期剩余 单位秒 查看镜像:docker images 获取一个新镜像:docker pull 镜像(ubuntu:16.04) 创建镜像:1、从已经创建的容器中更新镜像,并提交这个镜像;2、使用Dockerfile指令来创建一个新的镜像。 查看容器:docker ps -a(带-a是查看所有的,不带-a是查看启动的) 查看容器内运行的进程:docker top 容器号 查看应用程序日志:docker logs -f 容器号 创建容器:docker run -it --name 容器名 镜像名 /bin/bash 启动容器:docker start 容器名/号 重启容器:docker restart 容器名/号 停止容器:docker stop 容器名/号 删除容器:docker rm 容器名/号 进入容器:docker exec -it 容器名/号 /bin/bash
容器间通信要想多容器之间互通,从 Web 容器访问 mysql 容器,我们只需要把他们放到同个网桥中就可以了
设置网桥以后,容器之间天然互通
#查看现有网桥 docker network ls #新增我的网桥 docker network create -d bridge mysql_pageplug # 网桥分别绑定两个容器name docker ps docker network connect mysql_pageplug mysql8.0 docker network connect mysql_pageplug pageplug # 查看我们的网桥组中容器的IP docker network ls docker inspect mysql_pageplug
也可以在创建容器时使用网络别名(运行 Redis 在 test-net 网络中,别名redis) docker run -d --name redis --network test-net --network-alias redis redis:latest
当然 如果你使用 docker-compose 只需要描述依赖哪些服务放在一个yml文件下
# 创建网络 networks: test_net: driver: bridge
其他网络命令
#主机模式启动 network_mode: "host" restart: always 指定网络网段和IP docker network create --subnet=172.18.0.0/16 mynetwork
目录挂载为什么要目录挂载
- 使用 Docker 运行后,我们改了项目代码不会立刻生效,需要重新build和run,很是麻烦。
- 容器里面产生的数据,例如 log 文件,数据库备份文件,容器删除后就丢失了。
几种挂载方式
3. bind mount 直接把宿主机目录映射到容器内,适合挂代码目录和配置文件。可挂到多个容器上
4. volume 由容器创建和管理,创建在宿主机,所以删除容器不会丢失,官方推荐,更高效,Linux 文件系统,适合存储数据库数据。可挂到多个容器上5. tmpfs mount 适合存储临时文件,存宿主机内存中。不可多容器共享。
bind mount 方式用绝对路径 -v D:/code:/app 挂载数组代码-> 容器 volume 方式,只需要一个名字 -v db-data:/app
docker inspect mysql8.0
参数 “RW”: false的话表示只读模式,路径内文件不能被容器内程序修改
# 启动容器时挂载具名卷,Docker会为您创建该卷 docker run -d -p 1234:80 -v mynginx:/usr/share/nginx/html nginx:latest docker volume ls docker (volume) inspect mynginx
“$(pwd)”/html
到此这篇关于docker desktop安装redis的实现步骤的文章就介绍到这了,更多相关docker desktop安装redis内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!