【Docker教程(一)】WSL2、Docker以及docker-compose安装及环境配置

2023-11-11

一. 如何安装WSL2?

二. 如何安装和配置docker?

三. 如何安装docker-compose?

四. 如何基于ip代理池获取代理ip?

注意:先安装WSL2,再安装docker和docker-compose

参考资料:

软件下载及安装教程

a. docker-compose下载链接及安装教程

https://github.com/docker/compose/releases/tag/v2.6.1

Windows安装使用docker与docker-compose_itfallrain的博客-CSDN博客“(参考后半篇)

b. docker desktop下载及安装

https://docs.docker.com/desktop/install/windows-install/#system-requirements

Docker Desktop WSL 2 后端 - 木氷 - 博客园

c. 崔庆才代理池github源码及相应教程

https://github.com/Python3WebSpider/ProxyPool

d. WSL2的安装教程

Windows安装WSL2

wsl2的安装教程和初使用_FlynnLi的博客-CSDN博客_wsl2 安装

WSL2——win10可能是最好的Linux发行版 - 知乎

旧版 WSL 的手动安装步骤 | Microsoft Docs

e. WSL2 Linux内核更新包下载链接

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

1. 什么是WSL2,如何安装WSL2?

Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。简单理解,WSL为用户提供了一个基本完整的GNU/Linux环境,用户无需安装虚拟机或者双系统即可使用GNU/Linux中的软件。

Windows 10 2004 发布后,WSL2 也可以在正式版 Windows 10 中使用,相比于 macOS,WSL2 是一个原生 Linux 环境而非类 unix 环境,甚至可以在 App 商店中选择所需要的发行版。而相比于 WSL1,WSL2 采用了 HyperV 虚拟机的方式,解决了 WSL1 不能安装 Docker 等问题。

安装步骤

1. 准备工作

        1.1 CPU开启虚拟化

        1.2 启动WSL2和启动虚拟功能 (该步骤可省略,2.1和2.2执行该操作)

2. 安装WSL2

        2.1 启用适用于 Linux 的 Windows 子系统(管理员身份打开 PowerShell 运行)

        2.2 启用“虚拟机平台”可选功能 (管理员身份打开 PowerShell 并运行相应命令)

        2.3 下载安装Linux内核更新包,

        2.5 将 WSL 2 设置为默认版本

        2.6 安装Ubuntu发行版

        2.7 安装完成打开命令行窗口,设置用户名和密码。

具体安装步骤可以参考上述  d. WSL2的安装教程  中的链接

在文件资源管理器输入下面路径可以找到windows系统中的ubuntu文件路径

\\wsl$ 

1.1 CPU开启虚拟化

1.2设置–应用与功能–程序与功能–启用或关闭Windows功能打勾这两个

 

注意:安装的ubuntu在初次使用时需要按照以下教程设置管理员密码,否则无法进行root。

sun78@DESKTOP-4CS63E5:~$ sudo passwd
New password:
Retype new password:
passwd: password updated successfully
sun78@DESKTOP-4CS63E5:~$ su
Password:
root@DESKTOP-4CS63E5:/home/sun78#

参考资料:windows10安装Ubuntu子系统,初次使用设置root用户密码_神马东东2012的博客-CSDN博客

2. 如何安装和配置docker?

在安装Docker Desktop WSL 2后端之前,必须完成上述1中的步骤,docker安装步骤如下:

1. 下载Docker Desktop Stable 2.3.0.2版或者以后的版本
2. 启动Docker Desktop,从Docker菜单中,选择Settings -> General,选择Use WSL 2 based engine复选框,点击 Apply & Restart

具体安装步骤如下

交互式安装

  1. 双击Docker Desktop Installer.exe运行安装程序。

    如果您尚未下载安装程序 ( Docker Desktop Installer.exe),您可以从 Docker Hub获取它。它通常会下载到您的Downloads文件夹中,或者您可以从 Web 浏览器底部的最近下载栏中运行它。

  2. 出现提示时,确保根据您选择的后端选择或不选择配置页面上的使用 WSL 2 而不是 Hyper-V选项。

    如果您的系统仅支持这两个选项之一,您将无法选择使用哪个后端。

  3. 按照安装向导上的说明授权安装程序并继续安装。

  4. 安装成功后,单击关闭以完成安装过程。

  5. 如果您的管理员帐户与您的用户帐户不同,则必须将用户添加到docker-users组。以管理员身份运行计算机管理并导航到本地用户和组>docker-users。右键单击以将用户添加到组。注销并重新登录以使更改生效。

参考链接: 见上述 b. docker desktop下载及安装

3. 如何安装docker-compose?

在github上找到对应版本,安装即可

4. 免费代理池使用教程

该教程github链接:如何搭建一个高效的代理池

a. 开启docker

b. 在代理池相应文件夹下(D:\software\ProxyPool-master)打开cmd命令行窗口

c. 运行以下命令即可

docker-compose up

docker-compose up 是一个 Docker 命令,用于启动 Docker Compose 配置文件中定义的服务。Docker Compose 是 Docker 官方提供的一个工具,可以通过一个 YAML 配置文件来定义和运行多个 Docker 容器应用。

当你执行 docker-compose up 命令时,Docker Compose 会读取配置文件中的定义,并且启动所有的服务。如果需要,Docker Compose 会自动构建镜像、创建网络、挂载卷等等操作。

如果你的配置文件中有多个服务, docker-compose up 命令将启动所有的服务,并将它们连接到相应的网络。如果你只想启动配置文件中的某个服务,可以在命令后面指定要启动的服务名。

除了 up 命令外,Docker Compose 还提供了其他命令,如 downbuildstartstop 等等,可以通过 docker-compose 命令加上相应的参数来使用这些命令。

 d. 在下面端口可获取一个随机可用的代理

 http://localhost:5555/random

关于使用代理池和scrapy进行爬虫的入门教程,可参考这篇

【scrapy爬虫】最新sogou搜狗搜索 机智操作绕过反爬验证码(搜狗微信公众号文章同理)_彡千的博客-CSDN博客

参考资料

wsl2的安装教程和初使用_FlynnLi的博客-CSDN博客_wsl2 安装

Windows安装WSL2(微信)

Docker Desktop WSL 2 后端 - 木氷 - 博客园

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Docker教程(一)】WSL2、Docker以及docker-compose安装及环境配置 的相关文章

  • 没有可用的符号表信息

    我正在测试第三方的库 它崩溃了 当我想查看崩溃的原因时 我的 gdb 告诉我没有可用的调试符号 Program received signal SIGSEGV Segmentation fault Switching to Thread 0
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • 如何修复“iptables:没有该名称的链/目标/匹配”?

    我在我的 Linux 嵌入式系统上构建并安装了 iptables 如果我列出所有规则 则一切正常 iptables list Chain INPUT policy ACCEPT target prot opt source destinat
  • 何时使用 pthread 条件变量?

    线程问题 看来 只有在其他线程调用 pthread cond notify 之前调用 pthread cond wait 时 条件变量才起作用 如果在等待之前发生通知 那么等待将被卡住 我的问题是 什么时候应该使用条件变量 调度程序可以抢占
  • 使用 find - 删除除任何一个之外的所有文件/目录(在 Linux 中)

    如果我们想删除我们使用的所有文件和目录 rm rf 但是 如果我希望一次性删除除一个特定文件之外的所有文件和目录怎么办 有什么命令可以做到这一点吗 rm rf 可以轻松地一次性删除 甚至可以删除我最喜欢的文件 目录 提前致谢 find ht
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • GLIBCXX_3.4.26 未找到在 BeagleBone 上运行交叉编译的程序

    我有以下程序 include
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • 在哪里可以找到并安装 pygame 的依赖项?

    我对 Linux 比较陌生 正在尝试安装 python 的 pygame 开发环境 当我运行 setup py 时 它说我需要安装以下依赖项 我找到并安装了其中之一 SDL 然而 其他人则更加难以捉摸 Hunting dependencie
  • 使用 sed 更新 xml 属性(Windows + cygwin 和 Linux)?

    我需要使用 sed 命令对 xml 文件进行更新 但我在这方面遇到了麻烦 它需要在 Windows 使用 cygwin 和 Linux 上运行 XML 具有以下元素
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include

随机推荐

  • HTML 知识扫盲

    写在前面 HTML 是一门超文本标记语言 不管你听没听说过 HTML 但在网上冲浪的途中你无时不刻都在与它接触 他遍布在每个你看得到的互联网的角落 其实对于笔者而言 我已经断断续续地学习过这门语言 经过时间的磋磨 所剩知识也是寥寥无几 这次
  • autotools automake autoconf libtool 笔记

    autotools automake autoconf libtool 笔记 默认安装路径为 prefix usr local 可以通过 configure prefix
  • c语言 变量 section,#pragma DATA_SECTION的解释

    DSP CMD文件的编写EETOP专业博客 电子工程师自己的家园L gZnWr 1 COFF格式 1 gt 通用目标文件格式 Common Object File Format 是一种流行的二进制可执行文件格式 二进制可执行文件包括库文件
  • Python真的能杀死Excel吗?它能实现哪些Excel功能?

    在大家的印象里 想进入金融行业或者数据岗位 首先需要精通Excel 而且现在招聘条件也是明确表示 要精通Excel等办公软件 后面还会加一句 有Python经验的优先 野村证券副首席数字官马修 汉普森在上周五的伦敦Quant Confere
  • dnspod每步nat123及3322动态域名同类端口映射域名解析软件对比

    首先说明下这三个名词 端口映射 域名解析 动态域名解析 端口映射 80端口映射或自定义端口映射 可以解决80端口被屏蔽 可以在内网使用直接发布网站应用 可以在内网使用实现外网访问内网应用 域名解析 也叫域名解析管理 常用的操作就是登录域名管
  • 【论文复现】—— A New Outlier Removal Strategy Based on Reliability of Correspondence Graph for Fast ....

    目录 一 算法原理 1 论文概述 2 实现流程 3 参考文献 二 代码实现 三 GitHub链接 一 算法原理 1 论文概述 三维激光扫描技术能够为实景测量与重建提供高精度 大范围的点云数据 然而单一来源的点云不够完整 不够精细 因此使用点
  • Spring IOC(四)doCreateBean方法源码分析——创建Bean的过程

    目录 第1步 createBeanInstance 得到实例BeanWrapper 第1 1步 通过工厂方法实例化 先略过 第1 2步 通过默认构造函数实例化 第1 3步 通过有参构造函数实例化 第2步 applyMergedBeanDef
  • 类的私域变量访问方法

    类的私域变量只能在类的内部使用 类的实例对象不能访问 class JustCounter 类声明 secrectCount 0 私有变量 publicCount 0 公开变量 def count self 类方法 self secrectC
  • 关于String的hashcode,以及判断字符串是否相等的解析

    跟着老师的方法验证equals方法的重写 由于误写发现运行结果和预想的不一样 先上代码 package com wuyw oo import java util Objects author wuyw2020 date 2019 10 28
  • 关于Linux下操作(写)excel文件

    网上有很多第三方库可以非常方便的读写excel文件在此不再列举 如果应用场景只是将数据记录成excel格式 只写不读 一种不利用第三方库的做法是 1 正常创建一个文件 后缀为excel格式之一即可 2 sprintf格式化字符串生成列头 比
  • 40张最全计算机网络基础思维导图

    hi 大家好 今天的网络基础思维导图主要是二 三层网络协议 再配合之前的文章 四层以上互联网核心协议 TCP IP协议精华指南pdf发布 非常适合对网络感兴趣的同学 同时也让大家对整个网络架构有一个整体的认识 希望大家喜欢 传输介质简介 以
  • 几种网络通信协议

    应用层 HTTP Hypertext Transfer Protocol 超文本传输协议 显示网页 DNS Domain Name System 域名系统 FTP File Transfer Protocol 文件传出协议 SFTP SSH
  • BAPI_GOODSMVT_CREATE物料凭证创建…

    BAPI GOODSMVT CREATE可以实现物料凭证创建和部分冲销 全部冲销可以使用BAPI GOODSMVT CANCEL CALL FUNCTION BAPI GOODSMVT CREATE EXPORTING GOODSMVT H
  • Caffe中Solver解析

    1 Solver的初始化 shared ptr
  • QT中默认不选中Shadow build设置方法

    在使用qt开发的时候 每次创建工程 都会默认选中shadow build影子构建 作用是把编译生成的文件与源文件放在不同的目录 这样源码目录就相对整洁 但是这也会带来个问题 感觉超级鸡肋 就是经常修改了代码之后点运行 跑的还是修改之前的程序
  • 使用VMware Workstation Player虚拟机安装Linux系统

    下载安装 VMware Workstation Player 首先下载并安装 VMware Workstation Player VMware Workstation是一款非常强大的虚拟机软件 有pro专业版和player免费版 我们个人使
  • Java线程协作的两种方式

    介绍 Java中线程协作的最常见的两种方式 利用Object wait Object notify 和使用Condition 方法一 Object中的wait notify notifyAll方法定义如下 public final nati
  • 基于域名的恶意网站检测

    基于域名的恶意网站检测 0x00 数据来源 0x01 基于网页内容的判别方法 0x02 基于域名数据的判别方法 0x03 参考文献 0x00 数据来源 根据老师给的 300w 域名列表爬到的相应 DNS 响应数据 0x01 基于网页内容的判
  • 【翻译】 2.6 中的 4K 堆栈 [发布于 2004 年 5 月 12 日,作者:corbet

    传统上 Linux 内核在大多数架构上都使用 8KB 内核堆栈 该堆栈必须满足系统调用可能产生的任何调用序列 以及可能同时调用的任何 硬或软 中断处理程序的需要 实际上 在稳定的内核中 堆栈溢出的情况几乎闻所未闻 内核开发人员早已学会避免使
  • 【Docker教程(一)】WSL2、Docker以及docker-compose安装及环境配置

    一 如何安装WSL2 二 如何安装和配置docker 三 如何安装docker compose 四 如何基于ip代理池获取代理ip 注意 先安装WSL2 再安装docker和docker compose 参考资料 软件下载及安装教程 a d