1、Docker

Docker虚拟进程技术

img

沙箱的概念

使用Docker的原因

Docker和Vmware虚拟机的区别

img

Docker的应用场景

img

Docker容器的3个概念

一、Docker镜像

Docker镜像是由文件系统叠加而成(是一种文件的存储形式)。最底端是一个文件引导系统,即bootfs,这很像典型的Linux/Unix的引导文件系统。Docker用户几乎永远不会和引导系统有什么交互。实际上,当一个容器启动后,它将会被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存供磁盘镜像使用。Docker容器启动是需要的一些文件,而这些文件就可以称为Docker镜像。

镜像是构建Docker的基石。用户基于镜像来运行自己的容器。镜像也是Docker生命周期中的“构建”部分。镜像是基于联合文件系统的一种层式结构,由一系列指令一步一步构建出来。例如:添加一个文件;执行一个命令;打开一个窗口。也可以将镜像当作容器的“源代码”。镜像体积很小,非常“便携”,易于分享、存储和更新。

二、Docker容器

Docker可以帮助你构建和部署容器,你只需要把自己的应用程序或者服务打包放进容器即可。容器是基于镜像启动起来的,容器中可以运行一个或多个进程。我们可以认为,镜像是Docker生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段。 容器基于镜像启动,一旦容器启动完成后,我们就可以登录到容器中安装自己需要的软件或者服务。

所以Docker容器就是:

一个镜像格式;

一些列标准操作;

一个执行环境。

Docker借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Docker将这个模型运用到自己的设计中,唯一不同的是:集装箱运输货物,而Docker运输软件。

和集装箱一样,Docker在执行上述操作时,并不关心容器中到底装了什么,它不管是web服务器,还是数据库,或者是应用程序服务器什么的。所有的容器都按照相同的方式将内容“装载”进去。

Docker也不关心你要把容器运到何方:我们可以在自己的笔记本中构建容器,上传到Registry,然后下载到一个物理的或者虚拟的服务器来测试,在把容器部署到具体的主机中。像标准集装箱一样,Docker容器方便替换,可以叠加,易于分发,并且尽量通用。

使用Docker,我们可以快速的构建一个应用程序服务器、一个消息总线、一套实用工具、一个持续集成(CI)测试环境或者任意一种应用程序、服务或工具。我们可以在本地构建一个完整的测试环境,也可以为生产或开发快速复制一套复杂的应用程序栈。

三、Docker仓库

专门用于放置镜像的地方,镜像可以从网络上下载,也可以自己去产生。最大的公开仓库是 Docker Hub(https://hub.docker.com/)。

Docker的运行原理

image-20210902231732667

Docker引擎的安装

1、检查Linux版本和内核版本

cat /etc/redhat-releas
uname -r

2、更新yum

yum update

3、安装Docker的依赖插件

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

4、配置国内Docker加速源

yum -config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5、检查yum中关于Docker的版本

yum list docker-ce --showduplicates | sort -r

6、安装Docker

yum install docker

img

7、检查Docker版本

docker -v

8、设置Docker开机启动

systemctl enable docker

9、开启Docker引擎

systemctl start|restart|stop docker

img

卸载Docker引擎

systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

Docker使用之前的准备工作

配置国内Docker加速源

创建配置目录

sudo mkdir -p /etc/docker

配置镜像

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ]
}
EOF

重启Docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

到此,Docker容器使用之前的准备工作,就告一段落