Docker在Windows与CentOS上的安装

时间:2024-04-27 14:55:59

在这里插入图片描述

这个季节有着无数的热烈,就像是飞鸟对天空的迫切。大家好,今天给大家分享一下关于Docker的安装,那么作为一名软件测试工程师,为什么需要了解Docker并且使用Docker呢?Docker会给我们带来怎样的好处呢?

原因主要有以下几点:
  • Docker 可以快速创建和部署一致的测试环境,减少环境搭建的时间和成本。
  • 可以确保在不同的开发、测试和生产环境中,应用的运行环境一致,提高测试结果的可靠性。
  • 有效隔离不同的测试用例或项目,避免资源竞争和冲突。
  • 测试环境可以轻松移植到其他服务器或环境中,方便团队协作和共享。
  • 快速重置测试环境,降低测试的复杂性和成本。
  • 可以模拟出复杂的系统环境,包括依赖的服务和数据库等。
  • 可以提供自动化测试支持,与自动化测试工具集成,实现测试的自动化部署和执行。
  • 根据测试需求灵活调整资源的分配。

所以容器化技术在测试领域也是非常重要的,在多人或者团队协作下,可以使测试环境变得非常灵活。

一、Dcoker介绍

1、什么是Docker?

Docker官网:https://www.docker.com/

Docker和kubernetes(k8s)都是目前主流的Container(容器)技术,在中国异常火爆,搜索热度世界排名第一。

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

例子:
将各式各样的货物装在一艘大船上,如果没有集装箱,那么就随便摆放没有标准,可以将货物规整的摆放起来但是货物之间没有任何隔离,这种情况就会导致货物之间相互影响,就比如蔬菜和一些农药放到了一起,这样就一条船就无法实现,如果使用集装箱将各式各样的货物进行标准化,那么货物之间就不会相互影响,就可以用这艘大船进行运输,否则就需要准备多条船来进行分类运输。
在这里插入图片描述

Docker的logo是一个巨鲸,它上面托运了很多集装箱;可以把鲸鱼看成是货轮,相当于是一个平台,上面放的集装箱可以看成是容器,集装箱容器里面装的就是各种项目,而且集装箱与集装箱之间没有任何联系,它们是相互隔离的。
在这里插入图片描述

2、容器的本质是什么?

容器的本质是进程;

容器本质上是一种进程隔离技术。容器为进程提供了一个隔离的环境,容器内的进程无法访问容器外的进程。

实际上,运行在容器中的程序,是主机上的一个特殊的进程,通过Namespace,cgroups,rootfs等技术把程序所需要的资源划分到一个主机上的一个独立的空间。

容器直接运行在主机的操作系统之上,和主机共享内核。

容器虽然包含程序运行的环境,但他不包含一个完整的操作系统,容器是操作系统级别的虚拟化技术。

3、容器与虚拟化的对比

容器是应用程序层的抽象,将代码和依赖环境打包在一起。
多个容器可以在同一台计算机上运行,并与其他容器共享操作系统内核,每个容器在用户空间中作为隔离的进程运行。
并且容器占用的空间少于VM,可以处理更多的应用程序。
在这里插入图片描述

4、Docker的基本概念

Docker系统有两个程序:docker服务端和docker客户端
Docker服务端:是一个服务进程,管理着所有的容器。
Docker客户端:是docker服务端的远程控制器,可以用来控制docker的服务端进程。

5、Docker的三大核心组件

仓库(repository)
镜像(images)
容器(containers)

组件之间的关系:
在这里插入图片描述

Dcoker镜像:
Docker镜像是Docker容器运行时的只读模板,每一个镜像由一系列的层组成。
每一个镜像都可能依赖于由一个或多个下层组组成的另一个镜像。下层镜像是上层镜像的父镜像。
基础镜像:一个没有任何父镜像的镜像称为基础镜像。

Dcoker容器:
Docker容器和文件夹很类似,一个Docker容器包含了所有的某个应用运行所需要的环境。每个Docker容器都是从Docker镜像创建的。Docker容器可以运行,开始,停止,移动和删除。每一个Docker容器都是独立和安全的应用平台,Docker容器是Docker的运行部分

6、Docker的作用

1)简化配置
2)整合服务器
3)调试能力
4)提高开发效率
5)隔离应用
6)快速部署

7、扩展

1)docker和kubernetes(k8s)被称为容器时代的“双城记”。
2)DevOps(Developer+Operator)

DevOps(开发运维一体化) = 文化 + 过程 + 工具(docker+k8s)

文化:
信任和尊敬、敏捷的目标、开发的沟通

过程:
发布计划、持续集成、持续发布、持续测试、持续监控、持续改进

工具:
版本管理、自动化、部署监控

二、Windows下Docker安装

1、下载Docker
win10个人版安装可以直接访问官网地址点击下载
桌面版:https://www.docker.com/products/docker-desktop
在这里插入图片描述

默认下载的就是64位操作系统的版本

下载完成后点击打开就可以开始进行安装,直接全部默认下一步就行,完成后close。
在这里插入图片描述

然后双击桌面的图标启动

在这里插入图片描述

可能出现的报错:

1)报错一
在这里插入图片描述

解决方式:

开启 Windows 虚拟化和 Linux 子系统(WSL2),并且安装 Linux 子系统。

首先进入控制面板->程序->启用或关闭 windows 功能,开启 Windows 虚拟化和 Linux 子系统(WSL2)。
在这里插入图片描述

然后就是安装linux子系统,按住shift键鼠标右键单击开始按钮->用管理员身份打开windows PowerShell
在这里插入图片描述

输入如下代码即可在命令行安装,下载会比较慢,需耐心等待。

wsl --install -d Ubuntu

设置开机启动 Hypervisor(注意要用管理员权限打开 PowerShell)

bcdedit /set hypervisorlaunchtype auto

确保 BIOS 已开启虚拟化,下图检查是否已开启好
在这里插入图片描述

如果是已禁用,在开机时进入BIOS开启,开机时按住del进入bios 然后进入oc
找到 advance cpu configuration 把svm mode 改成enable
在这里插入图片描述

2)报错二
在这里插入图片描述

解决方式:

点击链接安装最新版本的 WSL2
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

安装完成后再次启动docker,启动成功后的docker界面。

在这里插入图片描述

三、CentOS下Docker安装

安装yum工具:

yum install -y yum-utils device-mapper-persistent-data lvm2 --skip-broken

更新本地镜像源:

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

安装docker:

yum install -y docker-ce

关闭防火墙:

# 关闭防火墙
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
# 查看是否关闭防火墙
systemctl status firewalld

启动docker:

systemctl start docker  # 启动docker服务
systemctl stop docker  # 停止docker服务
systemctl restart docker  # 重启docker服务

当出现active(running)时,即为启动成功,如图:
在这里插入图片描述

查看docker版本:

docker -v

在这里插入图片描述

配置镜像加速:

参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

创建文件夹:

sudo mkdir -p /etc/docker

在文件夹内新建一个deamon.json文件:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com"]
}
EOF

重新加载文件:

sudo systemctl daemon-reload

重启docker:

sudo systemctl restart docker