当前位置: 首页 > article >正文

【保姆级教程】WSL+CentOS7+Docker安装及配置

目录

  • 前言
  • 安装WSL
  • 安装CentOS7
  • 解决一些小问题
  • 安装和配置Docker
    • 安装Docker
    • Docker配置代理

前言

  • 本文旨在总结WSL上安装CentOS7,并安装配置Docker时遇到的问题。
  • 如果你遇到了相关的问题,本篇文章值得一看。

安装WSL

  • 该部分可以参考官方教程安装 WSL | Microsoft Learn。

  • 如果认为官方的太长,请看一下步骤。

    1. 在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是按下Win+R,然后输入cmd,再按下CTRL+SHIFT+ENTER

    2. 在命令行中输入如下命令:

      wsl --install
      
    3. 然后重启计算机即可安装成功。

    4. 验证安装是否成功:在命令行中输入wsl -l -v,然后回车,如果出现对应的版本信息则说明安装成功。如果没出现对应信息,则输入命令wsl --update进行更新,然后重复上述步骤。

安装CentOS7

CentOS7地址:Release CentOS 7.9-2211 · mishamosher/CentOS-WSL

  • 点击上述地址跳转到对应的页面,然后下载CentOS7.zip文件。下载完成之后解压,将解压后的文件放到你想安装CentOS7的位置,然后点击CentOS7.exe即可安装。

  • 在命令中输入命令wsl --list --verbose,如果出现类似如下信息说明安装成功。

    NAMESTATEVERSION
    * CentOS7Running2

解决一些小问题

  • 在命令行输入命令wsl -d CentOS7修改默认系统,这样以后只需要输入wsl即可进入系统。

  • 开启systemd:Ubuntu发行版默认安装已启用systemd,而其它Linux发行版上默认还是init,需要手动启用才行。

    ps --no-headers -o comm 1
    init(CentOS7)
    

    解决办法:进入CentOS7系统后,输入命令echo -e "[boot]\nsystemd=true" | sudo tee -a /etc/wsl.conf。接下来要先用 wsl -t centos7 停掉 centos7,再启动 centos7 才生效。

    验证方法:再次输入ps --no-headers -o comm 1,出现如下所示信息即为成功。

    ps --no-headers -o comm 1
    systemd
    
  • 对于命令行不高亮显示问题,按顺序解决。

    1. 在命令行输入vi ~/.bashrc
    2. 然后在文件末尾追加export PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ ",然后保存。(vim怎么用请百度)
    3. 最后执行source ~/.bashrc生效。

安装和配置Docker

安装Docker

  • 这个真的是一坨,配了一个下午才解决,也是因此让我写了这篇文章。

  • 安装Docker的命令:按顺序在命令行输入即可。出现错误往下看

    yum -y remove docker*
    
    yum install -y yum-utils
    
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
    
    yum install docker-ce docker-ce-cli containerd.io -y
    // 启动docker
    systemctl start docker
    // 开机启动
    systemctl enable docker
    
  • 如果上述命令你没有出现错误,恭喜你,下面这一小段你可以跳过了。

    • 出现错误的原因大概率是拉取资源超时的问题,这个问题可以通过换源解决。如果是启动Docker命令出现错误,罚你重新看一遍文章。

    • 以下镜像源随意替换一个。

      1. 阿里云源:

        sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
        
      2. 清华大学源:

        sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/repo/Centos-7.repo
        
    • 如果替换的是否报错,大概意思是说你的系统没有安装wget的话,则将wget -O替换为curl -o

    • 清理yun缓存

      sudo yum clean all
      sudo yum makecache
      yum -y install update
      
    • 验证新源是否可用,如果显示的源信息和你选择的国内源匹配,说明更换成功。

      sudo yum repolist
      
    • 测试下载:随意下载一个软件包(这里以下载vim为例),如果安装没有出错,说明换源成功。

      sudo yum install vim -y
      

Docker配置代理

  • 因为众所周知的原因,我们国内使用docker下载镜像没办法下载了

  • 有四种办法下载镜像:

    1. 最简单的,但是穷:云服务器可以使用内部docker源下载镜像,比如腾讯云。

    2. 没试过:在能下载镜像的地方下载好,然后在不能下载镜像的地方导入。

      docker save -o mysql_5_7.tar mysql:5.7
      docker load < mysql_5_7.tar
      
    3. docker配置代理

      • 如果不进行任何配置,直接执行docker pull mysql:5.7,大概率会遇到以下错误:

        1. docker: Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).See ‘docker run --help’.
        2. Error response from daemon: Get “https://registry-1.docker.io/v2/”: dial tcp ip: connect: connection refused
      • 创建配置文件

        sudo mkdir -p /etc/systemd/system/docker.service.d
        
        sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
        
      • 在文件中添加代理:IPv4地址在Windows的命令输入命令ipconfig即可查看。端口号则取决于你的代理软件,clash for windows的默认端口号为7890。注意:代理软件的系统代理类型需要更改为http,并且需要开启代理和允许局域网

        [Service]
        Environment="HTTP_PROXY=http://[你的IPv4地址]:[你的代理端口号]"
        Environment="HTTPS_PROXY=http://[你的IPv4地址]:[你的代理端口号]"
        
      • 重启Docker,并设置开机自动启动。

        sudo systemctl daemon-reload
        sudo systemctl restart docker
        systemctl enable docker
        
      • 查看环境变量,如果出现你配置的代理说明成功。

        sudo systemctl show --property=Environment docker
        
      • 测试是否可以成功下载。

        docker pull mysql:5.7
        

        一般来说已经可以了,但是作者是不一般的。所以还尝试了下面这个方法,最后终于成功了。

    4. 配置加速地址(本质上还是换源,因此有过期的风险,届时需要重新配置)

      如果你也是尝试方法3失败了,请记得删除方法3中增加的内容。

      • 创建或者修改/etc/docker/daemon.json

        sudo mkdir -p /etc/docker
        
        sudo tee /etc/docker/daemon.json <<EOF
        {
            "registry-mirrors": [
                "https://docker.1ms.run",
                "https://hub.rat.dev",
                "https://docker.1panel.live"
            ]
        }
        EOF
        // 重新加载配置文件
        sudo systemctl daemon-reload
        // 请注意你的Docker服务是否方便重启,如果不方便请忽略下一条命令
        sudo systemctl restart docker
        // 不方便重启Docker可以使用临时加速地址
        docker pull docker.1panel.live/library/mysql:5.7
        
      • 如果成功拉取则大功告成。

  • 此外网上还有其他方法,也有人成功了,因此在下面给出供大家参考。

    • 修改DNS服务配置

      // 进入对应文件
      vi  /etc/resolv.conf
      
      // 将下面的内容复制到对应位置,系统会自动生成一个,在前面加上'#'注释
      nameserver 8.8.8.8
      nameserver 114.114.114.114
      

http://www.kler.cn/a/555244.html

相关文章:

  • #渗透测试#批量漏洞挖掘#CyberPanel面板远程命令执行漏洞(CVE-2024-51567)
  • Redis(高阶篇)02章——BigKey
  • 高级应用:使用 p-retry 处理 Node.js 中的重试逻辑
  • 【 Avalonia UI 语言国际化 I18n】图文结合教学,保姆级教学,语言国际化就是这么简单(.Net C#)
  • 【Quest开发】全身跟踪
  • 在Logback中拦截和修改日志
  • 【核心算法篇十七】《深度解析DeepSeek概率图模型:贝叶斯网络推理引擎的技术内核》
  • spring日志
  • golang panic原理
  • C#+SqlSugar实现主从库读写分离
  • 什么是Dubbo?Dubbo框架知识点,面试题总结
  • dify安装
  • 如何解决RNN梯度爆炸和弥散的问题
  • 2.19c++练习
  • java简单实现请求deepseek
  • MATLAB基础学习相关知识
  • RAG2SQL工具介绍,效果比Text2SQL更好?
  • 分布式大语言模型服务引擎vLLM论文解读
  • 【工具插件类教学】实现运行时2D物体交互的利器Runtime2DTransformInteractor
  • 23种设计模式 - 备忘录模式