注:本次样式安装使用的是centos8 操作系统。
1、镜像下载
具体的镜像下载地址各位可以去官网下载,选择适合你们的下载即可!
1、CentOS官方下载地址:https://vault.centos.org/
2、阿里云开源镜像站下载:centos安装包下载_开源镜像站-阿里云
3、网易开源镜像下载:Index of /centos/
2、Docker 简介
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖环境打包成一个可移植的容器。这些容器可以在任何支持 Docker 的机器上运行,从而解决了“在我机器上可以运行”的问题。Docker 提供了一种轻量级的虚拟化方式,使得应用程序的部署、管理和扩展变得更加高效。
2.1、Docker 的主要组成部分:
- Docker Engine:Docker 的核心组件,负责构建、运行和管理容器。
- Docker Hub:一个公共的容器注册中心,开发者可以在这里上传和分享容器镜像。
- Docker Compose:用于定义和运行多容器 Docker 应用的工具,通过 YAML 文件配置服务。
2.2、Docker 的优势:
- 快速部署:借助容器,应用程序可以迅速从开发环境迁移到生产环境。
- 资源隔离:每个容器都有独立的运行环境,确保不同应用之间不会互相干扰。
- 可扩展性:可以轻松地创建多个相同的容器实例,以应对高并发需求。
- 一致性:无论在开发、测试还是生产环境中,运行的都是相同的容器,减少了环境差异带来的问题。
2.3、Docker 在 Python 自动化测试中的作用
环境一致性:通过 Docker,可以确保测试环境与生产环境一致,避免因环境差异导致的测试失败。
依赖管理:将所有依赖项打包在容器内,避免了在本地机器上进行复杂的环境配置和依赖管理。
快速启动与停止:测试团队可以快速启动和停止容器,从而节省时间,特别是在进行多次测试时。
并行测试:Docker 可以轻松地创建多个容器实例,使得测试可以并行进行,提高测试效率。
易于集成:Docker 容器可以与 CI/CD 工具(如 Jenkins、GitLab CI 等)无缝集成,自动化测试流程。
回归测试:通过 Docker,开发团队可以轻松地回滚到之前的测试环境,进行回归测试,确保新代码的正确性。
3、开始安装
安装之前先ping www.baidu.com 看看自己的虚拟机是否能够联网,因为在安装的时候需要联网下载很多包和依赖。联网必不可少。
3.1、备份
切换到/etc/yum.repos.d/目录,查看当前目录下的文件
cd /etc/yum.repos.d/
ls
执行结果如下:
创建一个文件夹用来备份当前目录下的所有内容
mkdir bf
将源文件移动至备份文件夹
mv CentOS-* bf
3.2、下载安装镜像源
使用wget命令下载并替换镜像源,我这里使用的源为阿里云镜像:
wget https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo -O /etc/yum.repos.d/Centos-vault-8.5.2111.repo
wget https://mirrors.aliyun.com/repo/epel-archive-8.repo -O /etc/yum.repos.d/epel-archive-8.repo
执行结果如下:
注意,在这里http://mirrors.cloud.aliyuncs.com需要替换为http://mirrors.aliyun.com,因为官网提供的命令并没替换完,而且官网命令针对的是具有公网访问能力的ECS实例,所以这里各位如果报错的话,可以使用一下命令:
sed -i 's/mirrors.cloud.aliyuncs.com/mirrors.aliyun.com/g' /etc/yum.repos.d/Centos-vault-8.5.2111.repo
sed -i 's/mirrors.cloud.aliyuncs.com/mirrors.aliyun.com/g' /etc/yum.repos.d/epel-archive-8.repo
执行如下:
3.3、清除原yum缓存建立新缓存
执行以下命令即可:
yum clean all && yum makecache
如果需要测试可以使用以下命令:
yum update -y #后面跟一个你想要安装的包试试
3.4、更新系统
dnf update
命令用于更新系统中已安装的所有软件包。它是 DNF(Dandified YUM)的核心功能之一,主要作用包括:
软件包更新:
dnf update
会检查所有已安装软件包的最新版本,并自动下载和安装这些更新。这样可以确保系统中的软件保持最新状态,获得最新的功能和安全修复。依赖关系管理:当某些软件包需要更新时,
dnf
会自动处理相关的依赖关系,确保所有依赖的软件包都得到适当的更新。安全更新:DNF 会提供有关安全更新的信息,通过
dnf update
可以确保系统安装了所有重要的安全补丁。清理过时的软件包:在更新过程中,DNF 还可以自动删除那些不再需要的旧版本软件包,以节省磁盘空间。
持久化配置:DNF 允许用户通过配置文件定制更新行为,比如只更新特定的软件包,或定期自动更新。
插件支持:DNF 支持插件扩展功能,可以利用这些插件来增强更新过程的功能,例如记录更新日志或发送通知。
dnf update
注意:运行到这个需要各位输入y。确定下载。然后等待
OK,更新完成
3.4、安装依赖包
docker在运行的时候需要一些依赖包才能运行,
安装docker执行为什么要安装依赖包?
功能支持:Docker 需要特定的系统组件和库来实现容器化功能,如
containerd
,runc
等,这些都是 Docker 的核心组件。网络配置:Docker 使用特定的网络配置和协议来管理容器之间的通信,这需要相应的网络工具和库的支持。
存储驱动:为了高效管理容器数据,Docker 依赖于存储驱动(如 OverlayFS),这些驱动需要额外的依赖包来支持。
安全性:某些依赖包提供了安全功能,比如用户命名空间和其他安全策略的实现,确保容器的隔离性和安全性。
包管理器支持:在安装 Docker 时,包管理器(如
dnf
或yum
)会自动处理这些依赖关系,所以需要确保所有必要的包都已正确安装。所以我们在安装之前需要先安装其运行的依赖包。执行一下命令即可!
dnf install -y dnf-utils device-mapper-persistent-data lvm2
命令和参数解释如下:
dnf:这是一个现代化的包管理工具,替代了 YUM,用于在基于 RPM 的 Linux 发行版(如 CentOS、Fedora 等)上安装、更新和管理软件包。
install:这是 DNF 的一个子命令,用于安装指定的软件包。
-y:这是一个选项,表示在安装过程中自动回答 "yes",即所有提示会默认选择“Yes”。这使得安装过程无需人工干预,适合脚本化操作。
dnf-utils:这是一个软件包,提供了一些有用的 DNF 工具和插件,帮助我们更好地管理软件包。
device-mapper-persistent-data:这个软件包为设备映射器提供持久化的存储支持,允许在容器和卷管理中使用持久化的存储特性,这是 Docker 和 LVM 等技术所需要的。
lvm2:这是逻辑卷管理(LVM)的工具包,允许用户创建和管理逻辑卷,以便更灵活地管理磁盘空间,对 Docker 的存储管理和数据持久化也非常重要。
执行成功后如下图:
3.5、添加 Docker 的yum 仓库
首先这里,做下说明:
为什么在centosos8中安装docker时需要建立docker的yum库?
获取最新软件包:Docker 的 YUM 仓库包含了 Docker 的最新版本及其依赖包。通过添加这个仓库,用户能够确保安装的是最新稳定版本,而不是系统默认仓库中的过时版本。
依赖管理:Docker 的 YUM 仓库自动处理软件包之间的依赖关系。安装 Docker 时,它会自动下载并安装所需的所有依赖包,简化了安装过程。
与系统兼容:Docker 的官方仓库提供的包是经过测试和验证的,确保与 CentOS 8 系统的兼容性,减少了因版本不一致导致的问题。
简化安装过程:通过使用 YUM 仓库,用户可以通过简单的命令(如
yum install docker-ce
)轻松安装 Docker,而不需要手动下载和配置多个软件包。安全更新:Docker 的 YUM 仓库会定期更新,包含安全补丁和改进。通过配置 YUM 仓库,用户可以轻松获取这些更新,保持系统安全。
我们目前使用的centos 8 系统,并没有属于docker的yum仓库,所以需要我们自己建立。
执行一下命令:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
命令和参数解释如下:
config-manager:这是 DNF 的一个子命令,允许用户管理软件源的配置,包括添加、删除和修改软件源。
--add-repo:这是一个选项,用于指定要添加的新软件源。
https://download.docker.com/linux/centos/docker-ce.repo:这是要添加的 Docker Community Edition(Docker CE)的 YUM 仓库的 URL。这一仓库包含了 Docker 的最新版本及其依赖包,用户可以通过它来安装和更新 Docker。
执行完成后如下所示:
3.6、安装 Docker
yum install -y docker-ce --allowerasing
命令和参数解释如下:
docker-ce:这是要安装的软件包的名称,表示 Docker Community Edition。Docker CE 是 Docker 的开源版本,适用于开发和小型环境的使用。
--allowerasing:这是一个选项,表示在安装过程中如果发现有冲突的软件包(即某些软件包版本不兼容),YUM 可以自动删除这些冲突的软件包,以便顺利安装目标软件包。这在处理版本冲突时非常有用,能够确保安装过程不会因为依赖冲突而中断。
安装一共6个ce文件,不要少哦!
安装完成
3.7、启动 Docker
systemctl start docker 或者 systemctl start docker.service
查看启动的状态
systemctl status docker 或者systemctl status docker.service
3.8、配置阿里云镜像加速
地址:https://cr.console.aliyun.com/
在配置之前我们可以先查看我们当前的docker源
需要自己注册一个一个阿里云的账号,我已经注册好了。直接搜索
进入以下界面
当然,这里的文档里面也已经 有对应的配置步骤,可以按照他的来,配置即可
执行一下代码:
vim /etc/docker/daemon.json
进入编辑器,添加一下内容
{
"registry-mirrors": ["https://替换成你们自己的.aliyuncs.com"]
}
然后保存退出
修改完 Docker 配置之后,我们需要重新启动 Docker 服务,使配置生效:
systemctl restart docker
再次执行 docker info 命令来验证 Docker 源是否设置成功:
显示以上代码则说明配置完成。
3.9、查看版本是否安装成功
docker version 或者 docker
3.10、设置开机自启docker
systemctl enable docker
3.11、停止docker
systemctl stop docker
3.12、重启 Docker服务
systemctl restart docker
3.13、测试docker
docker run hello-world
此时我们也可以查看是否成功拉取hello-world镜像:
docker images
报错解决:
我们拉去镜像执行命令的时候,有时候会报这个错误
报了一个超时的错误,这个解决方式如下,
更换镜像源:
可以使用一下镜像源,具体的操作步骤可以按照我们刚开始配置加速镜像的步骤来。
1、sudo mkdir -p /etc/docker 2、sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://do.nark.eu.org", "https://dc.j8.work", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ] } EOF 3、sudo systemctl daemon-reload 4、sudo systemctl restart docker 5、systemctl status docker
重启完docker之后检查registry mirror刚刚配置的加速地址是否成功
docker info
成功更换镜像加速地址
然后在继续执行
docker run hello-world
就可以了