这个季节有着无数的热烈,就像是飞鸟对天空的迫切。大家好,今天给大家分享一下关于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