问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

开发环境搭建-4:WSL配置docker运行环境

创作时间:
作者:
@小白创作中心

开发环境搭建-4:WSL配置docker运行环境

引用
CSDN
1.
https://m.blog.csdn.net/weixin_44112083/article/details/145378139

本文将详细介绍在WSL2环境下配置Docker运行环境的步骤,包括容器技术的基本概念、Docker的安装流程以及配置国内镜像仓库加速等内容。

基本概念说明

容器技术

利用Linux系统的内部功能:

  • namespace:隔离进程
  • cgroup:限制容器能使用的硬件资源
  • chroot:隔离文件系统

虚拟出一个文件、进程相互独立,且可使用的系统资源被限定的特殊进程,这个进程就是被称为容器的虚拟环境。由于Linux系统一切均基于文件,因此这样就可实现多个虚拟环境在同一主机上的运行。且由于容器的本质是特殊的进程,可以充分利用系统资源,实现更高效的运行。

  1. 容器技术 VS 虚拟机 VS 实机运行
  2. 实机运行 = 软件直接在硬件上运行
    直接运行在硬件上效率高,但灵活度太低、硬件成本高
  3. 虚拟机 = 利用计算机硬件的功能,虚拟化一个完整的系统
    安全,虚拟系统支持的种类多,但虚拟系统负责运行效率低
  4. 容器技术 = 共用系统底层,利用系统实现不同容器、容器与主机间的隔离
    运行效率高、但依赖系统底层功能
  5. 重要概念
  6. 容器 Container:每个独立划分的空间,里边包含了独立的文件系统,称为容器,镜像在其中运行
  7. 源 Registry:管理镜像的仓库
  8. 镜像 Image:可以将现有的容器打包 / 使用构建工具创建镜像,便于分发部署
  9. 容器技术的未来
  10. 容器进一步发展,从单一服务器扩展到整个集群、多个集群都使用容器构建系统,此时docker就力不从心了,需要更高级的专门系统,进行集群级的容器管理
    --> 容器编排系统,如k8s,OpenShift等
    参考资料:https://www.thebyte.com.cn/architecture/container.html

容器运行时

粗略的来说,容器运行时 = 控制容器的管理软件 + 提供外界管理的界面(命令行、API等)

常见的容器运行时有:

  1. docker:容器的创始者,应用广泛,但运行时需要root权限,不够安全
  2. podman:redhat改进的容器运行时,是centos预装的运行时,无需root权限更安全
  3. k8s:实际上是容器编排软件(容器编排 = 利用计算机自动化实现集群级大量容器的管理)

这里选用比较常见的docker运行时

安装docker流程

参考资料(清华docker-ce源):https://mirror.tuna.tsinghua.edu.cn/help/docker-ce/

清理冲突软件、旧版软件

容器运行时不能相互共存。即:如果要安装docker,则需要卸载podman等其他运行时
同一运行时的不同版本不能互存。如:如果要安装新版docker,则需要删除原来存在的旧版

卸载冲突软件(以podman为例)

  1. 查询是否安装了podman相关软件
  
sudo rpm -qa | grep podman
  

若指令执行有相关输出,则这些软件是podman相关的软件
2.
卸载podman(如果上面查询到安装了相关软件)

  1. 将podman中所有容器停止
  
podman stop $(podman ps -aq)
  
  1. 将podman中所有容器删除
  
podman rm -f $(podman ps -aq)
  
  1. 将podman中所有镜像删除
  
podman rmi $(podman images -q)
  
  1. 删除podman软件及工具链
  
sudo dnf uninstall -y podman podman-docker buildah skopeo
  

卸载原版docker

如果原来安装过docker,需要将原版docker先卸载

  
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  

安装docker

配置docker仓库

这里第3步是关键,将原来的官方地址替换为清华源地址,实现docker软件安装时的加速

  
sudo yum install -y yum-utils
# 配置原版仓库地址
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 替换为清华源地址
sudo sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
  

安装docker

  
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  

配置docker服务

注意:docker相关指令,都需要root权限。root权限配置可参考我的文章《配置WSL(类centos的oraclelinux官方镜像)》
安装完成后,docker服务默认未启动、且开机不自启,这里设置为开机启动、并直接启动

  
# 设置docker开机启动
sudo systemctl enable dockerd
# 启动docker服务
sudo systemctl start docker
  

若之后想控制docker的启动/停止/重启,设置/取消开机自启,可执行以下指令

  
# 启动/停止/重启docker
# 一般修改docker配置后,都需要重启docker服务使配置生效
sudo systemctl start/stop/restart docker
# 设置/取消docker开机自启
sudo systemctl enable/disable docker
  

配置docker国内镜像仓库加速

  • docker安装加速(前面介绍的):docker软件本身安装的加速
  • docker镜像仓库加速(这一节介绍的):使用docker下载容器镜像时的加速

通用配置如下
参考文章:https://blog.csdn.net/liuxin_hello/article/details/139654089

  
# 1. 打开docker配置文件
sudo vim /etc/docker/daemon.json
# 在配置文件中添加以下内容
{  
  "registry-mirrors": [  
    "https://registry.docker-cn.com",  
    "http://hub-mirror.c.163.com",  
    "https://docker.mirrors.ustc.edu.cn"  
    // 可以继续添加其他镜像源地址....
  ]  
}
  

这里配置daocloud.io的加速
daocloud镜像加速地址详情:https://github.com/DaoCloud/public-image-mirror
!!!感谢dcaocloud等国内公益镜像加速服务提供者!!!

  
# 1. 打开docker配置文件
sudo vim /etc/docker/daemon.json
# 在配置文件中添加以下内容
{  
  "registry-mirrors": [  
    "https://docker.daocloud.io",
    "https://registry.docker-cn.com",  
    "http://hub-mirror.c.163.com",  
    "https://docker.mirrors.ustc.edu.cn"  
  ]  
}
# 2. 保存文件
# 3. 重启docker服务
sudo systemctl restart docker
  

注意:

  1. 修改配置文件后,需要重启docker服务
  2. 修改配置文件、重启docker服务,都需要
    root
    权限
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号