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系统。

相关推荐
程序员敲代码吗9 小时前
Windows组策略限制规避指南:深入解析与实际操作
windows
静听山水9 小时前
Redis的Pipeline (管道)
数据库·redis·php
无尽的沉默9 小时前
SpringBoot整合Redis
spring boot·redis·后端
weixin_404679319 小时前
docker部署ollama
运维·docker·容器
静听山水9 小时前
Redis核心数据结构-list
数据结构·redis·list
Hi2024021710 小时前
在Docker容器中安全运行OpenClaw:无需虚拟机,体验AI助手
人工智能·安全·docker·openclaw
江湖有缘10 小时前
Docker部署music-tag-web音乐标签编辑器
前端·docker·编辑器
黄大帅@lz10 小时前
openai提示词学习
windows·学习
计算机小手10 小时前
Docker 部署 OpenClaw 汉化版,畅玩个人 AI 智能代理
经验分享·docker·aigc·开源软件