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

相关推荐
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
rockmelodies3 天前
# Windows Server2008 R2 Standard(SP1镜像U盘)重置本地管理员密码【完整详细步骤】
windows·密码破解
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS3 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
IT大白鼠3 天前
Redis 系列 · 第 01 篇——认知入门:Redis 是什么
redis·nosql
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
玉&心3 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing3 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
赵文宇(温玉)3 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang3 天前
上传本地镜像到harbor中
docker·容器·持续部署