windows下通过docker-desktop创建redis实例

先说一下windows下docker安装的要求:

1、bios支持intel VT-x,就是支持虚拟化。

2、启用或关闭windows功能这里要选中hyper-v,windows虚拟机监控程序平台,适用于Linux的Windows子系统

3、windows10 1903版本及以上

4、打开基于虚拟化的安全,设置已启用。

关于前面三个都好设置,其实最容易忽视的就是第四个,我当时按照前面三个一一检查,设置,确信没有问题,但是wsl -l -v显示虚拟机版本还是有问题,最后根据安装提示:

Wsl/Service/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED

才找到问题所在:

我系统原来安装过ubuntu2204,但是再安装新的ubuntu2404又不行了,这个就很矛盾,各种设置都不生效,最后找到是本地组策略里面还有一个虚拟化的安全。

进入这个设置:win+x,然后输入gpedit.msc回车,就会打开本地组策略编辑器。按照目录结构找到虚拟化安全即可。

我这里安装不上ubuntu2404的时候,默认是未配置的,切换到已启用,ubuntu2404就安装上了。后续的设置wsl2也好使了。

至于ubuntu虚拟机的安装,我们直接在winstore商店里面查找wsl或者ubuntu就可以出现。

========================================================

因为windows上的docker需要借助ubuntu系统来作寄宿linux,所以我们需要安装ubuntu作为子系统。而且docker还需要wsl版本为2。默认1是不行的,所以我们要升级。

bash 复制代码
wsl --update
wsl --set-version Ubuntu2204 2

安装完ubuntu虚拟机之后,我们就可以设置版本为2了。正确的版本如下所示:

安装docker-desktop就好说了,就是一般的程序安装。

这里我需要启动redis实例,我通过compose方式启动,首先设置docker-compose.yml文件:

bash 复制代码
services: 
    redis:
        image: redis:6.2.18
        container_name: redis
        ports: 
          - "6379:6379"
        volumes:
          - ./conf/redis.conf:/usr/local/etc/redis/redis.conf
          - ./data:/data
        command: redis-server /usr/local/etc/redis/redis.conf
        restart: always

实例会利用redis:6.2.18镜像,映射本地6379端口,目录和配置文件映射当前文件夹的data和conf/redis.conf。

本地设置的文件目录结构:

值得一提的是,conf/redis.conf这个配置文件,最后是redis-server启动的时候读取的配置文件,我们需要修改几个配置:

bash 复制代码
bind 0.0.0.0      // 绑定本机,外部可访问
protected-mode no // 容许远程连接
appendonly yes    // 持久化方式
data ../data      // 持久化目录,这里data目录在conf/redis.conf的上级所以这里需要修改,否则出错

这里如果bind默认127.0.0.1,那么容器启动正常,可是访问失败,就像下图这样:

启动命令直接 docker compose up -d

启动容器,我们可以在docker-desktop界面,找到该容器,然后选择Open in terminal

接着我们就可以像在linux里面通过docker exec -it redis /bin/bash命令进入容器实例一样:

这里Tab标题是Exec,其实就可以理解通过docker exec -it的方式进入容器的。

因为容器配置文件docker-compose.yml里面指定了相关文件以及文件夹的映射,所以我们在windows系统下,也能看到映射出来的文件。

至此,windows上通过docker-desktop方式启动redis实例就完成了,其中最关键的一个配置就是redis.conf下bind 0.0.0.0。

windows下的docker运行在linux系统之上,所以我们要提前安装ubuntu系统。

相关推荐
二宝哥几秒前
CentOS 7.9 系统下 Redis 5.0.4 单机安装与源码编译安装指南
redis·centos
生活爱好者!2 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
MC皮蛋侠客2 小时前
uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
python·ci/cd·docker·uv
王维同学2 小时前
[原创][Windows C++]LSA 认证、安全与通知包的注册表枚举
c++·windows·安全
YCOSA20253 小时前
雨晨 Windows 11 IOT 企业版 LTSC 24H2 轻装 2合1 26100.8968
windows·物联网
Hui Baby3 小时前
K8S使用CRD和控制器简单应用
云原生·容器·kubernetes
汤姆yu3 小时前
CodeGeeX 4完整安装与实操使用全指南
人工智能·windows·ai·智能体·视频模型
用户233376852185 小时前
Docker 端口"时通时不通"的排查实战
docker
吐了啊取名字太难6 小时前
美颜系统AI修图本地跑并支持Mac、win、安卓、iOS不卡顿
android·人工智能·windows·数码相机·mac·ai编程
做个文艺程序员6 小时前
Linux第22篇:用Docker容器化你的Java SaaS应用:一次构建,随处运行
java·docker·容器