Docker在Windows与CentOS上的安装

server/2024/9/24 8:02:41/

在这里插入图片描述

这个季节有着无数的热烈,就像是飞鸟对天空的迫切。大家好,今天给大家分享一下关于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.reposed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repoyum 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

http://www.ppmy.cn/server/20287.html

相关文章

esp32s3中使用双通道通信解决TCP粘包问题

在使用esp32 idf例程中的tcp_server和tcp_client通信测试时发现&#xff0c; 在tcp_server端&#xff0c;接收到一帧数据之后必须马上回复至少一个字节&#xff0c;才能保证每帧数据不粘包&#xff0c; 如果不回复操作&#xff0c;300ms以内的通信时延会导致tcp严重粘包&…

OceanBase 分布式数据库【信创/国产化】- OceanBase Demo 环境搭建

本心、输入输出、结果 文章目录 OceanBase 分布式数据库【信创/国产化】- OceanBase Demo 环境搭建前言OceanBase 数据更新架构部署背景信息组件介绍部署前提条件下载并安装 all-in-one 安装包单机部署 OceanBase 数据库执行输出中的连接命令连接数据库配置 OceanBase 密码Ocea…

Linux - tar (tape archive)

tar 的全称是 Tape Archive。它最初是在 Unix 系统中用于将数据写入磁带的工具&#xff0c;但现在它通常用于创建、维护、修改和提取文件的归档文件。尽管 tar 可以用于压缩和解压缩文件&#xff0c;但它本身并不进行压缩&#xff0c;而是通常与 gzip 或 bzip2 等压缩工具一起使…

腾讯云邮件推送如何设置?群发邮件的技巧?

腾讯云邮件推送功能有哪些&#xff1f;怎么有效使用邮件推送&#xff1f; 腾讯云邮件推送以其稳定、高效的特点&#xff0c;受到了众多企业的青睐。那么&#xff0c;腾讯云邮件推送如何设置呢&#xff1f;又有哪些群发邮件的技巧呢&#xff1f;下面AokSend就来详细探讨一下。 …

grpc笔记

教程地址 【狂神说】gRPC最新超详细版教程通俗易懂 | Go语言全栈教程_哔哩哔哩_bilibili rpc 定义&#xff1a;Remote Procedure Call——远程过程调用&#xff0c;通俗的含义是&#xff1a;远程定义好方法名、参数和返回值&#xff0c;RPC可以像调用本地方法那样调用远端方…

[Java EE] 多线程(四):线程安全问题(下)

1.5 volatile关键字 我们在了解这个关键字之前,我们首先要把产生线程安全的第4个原因补齐,我们来说说由于内存可见性引起的线程安全问题. 我们来看下面这样一段代码: import java.util.Scanner;public class Demo16 {public static int count 0;public static void main(Str…

docker简介

Docker 是一种开源的容器化平台&#xff0c;用于打包、发布和运行应用程序及其依赖项。它基于 Linux 内核的 cgroups 和 namespaces 功能&#xff0c;实现了轻量级的虚拟化技术&#xff0c;使得开发人员能够在一个统一的环境中开发、测试和部署应用程序&#xff0c;同时也简化了…

第67天:APP攻防-Frida反证书抓包移动安全系统资产提取评估扫描

思维导图 案例一&#xff1a;内在-资产提取-AppinfoScanne AppinfoScanner 一款适用于以 HW 行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具&#xff0c;可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态 WEB …