云原生 | Docker - [简介、架构、安装、加速]

§1 Docker 是什么

  • docker 是环境的容器
  • 允许应用连同它的依赖、环境等一起打包,并且可以将这个包放到其他环境上继续启动运行
  • 类似以前 windows 的 ghost 镜像,但这个镜像是专为跑应用而准备的,所以自带这个应用所需的环境、配置、依赖

与虚拟机的区别如下图所示,相比于

  • docker 不需要虚拟硬件和操作系统,而是直接使用硬件资源
  • docker 是应用和环境的打包,虚拟机还需要加上一个虚拟操作系统内核
    在这里插入图片描述

§2 架构

§2.1 官网图

在这里插入图片描述
镜像、容器实例、仓库
仓库 类似于 github,是存放镜像的地方
仓库和 maven 仓库一样有公有和私有仓库之分
最大的公有仓库是 hub.docker.com
国内最常用的仓库是阿里云
仓库里存放的都是镜像

镜像 是对应用和其依赖、环境等配属物的容器
镜像相当于一个模板,这个模板是一个文件
镜像通常可以包含一个完整的文件系统
镜像可以分层构建,并且不包含任何动态数据

容器实例 是镜像的一个运行进程
镜像运行后得到一个容器实例,所有容器都是通过镜像创建的
一个镜像可以同时运行处多个容器实例

§2.2 架构图

在这里插入图片描述
rootfs
是一套精简的 linux 文件系统,docker 镜像的运行也是基于 linux 的,只不过是基于简化版 linux

docker container
docker 容器

libcontainer(?)
docker 的 rootfs 只是一套精简的 linux 文件系统,若容器需要linux的一些特性则通常需要依赖 libcontainer
docker 通过 libcontainer 从 rootfs 上区分出不同的容器

docker registry
docker 仓库

docker client
docker 客户端,通常用来发出指令

docker daemon
docker 的守护进程,运行在主机上
包括两个部分

  • docker server
    用于接受客户端的指令并进行 job 的调用
  • docker engine
    用于实际处理 docker job 的地方,若 job 执行过程中需要,会自动与仓库进行通信

docker driver
驱动,包括网络驱动、图形驱动等

§2.3 UnionFS(联合文件系统)

docker 镜像的文件系统是分层的,在下载镜像时可以看到相关现象
在这里插入图片描述
这是 docker 的 UnionFS,联合文件系统,以下是 UnionFS 自底而上的组成

在这里插入图片描述

  • bootfs
    • bootloader
      最先加载,用于加载 kernel
    • kernel
      成功加载后,接过内存使用权并加载 rootfs
  • rootfs
    不同操作系统发行版的文件系统,相当于 centos 等
    rootfs 通常也作为基础镜像(base image)存在
  • 镜像层
    镜像层可以包括多个层次,按依赖关系顺次罗列,
    比如 jdk、mysql、app
    每追加一层,这一层之下的镜像都做完父镜像存在
  • 容器层
    通过镜像启动容器时,docker 会在最顶层添加一个可写的文件系统
    容器层以下,都是只读的

§3 安装

docker 的获取和安装可以参考 官网

§3.1 前提

linux 系统要求

  • CentOs 7 以上
  • 系统版本 64 位
  • linux 内核 3.8 以上

通过下面指令查看

cat /etc/redhat-release
uname -r

在这里插入图片描述

卸载旧版本

yum remove docker \
              docker-client \
              docker-client-latest \
              docker-common \
              docker-latest \
              docker-latest-logrotate \
              docker-logrotate \
              docker-engine

在这里插入图片描述

安装 gcc

yum -y install gcc

在这里插入图片描述
yum -y install gcc-c++

在这里插入图片描述

§3.2 安装

安装 yum-utils

yum install -y yum-utils

在这里插入图片描述

添加 stable 仓库

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

在这里插入图片描述

刷新 yum 缓存(可选)

yum clean all
yum makecache fast
yum update

在这里插入图片描述
安装 docker

yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

如果安装失败,重新刷新 yum 缓存
在这里插入图片描述

§3.3 启动

启动 docker 服务

systemctl start docker

运行 hello world 验证启动

docker run hello-world

在这里插入图片描述

查看 docker 进程

ps -ef |grep docker

在这里插入图片描述

查看 docker 版本

docker version

在这里插入图片描述

§3.4 卸载

停止 docker 服务

system stop docker

从 yum 卸载

yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin

删除 docker 的镜像、容器、卷和用户配置

rm -rf /var/lib/docker
rm -rf /var/lib/containerd

§4 镜像加速器

获取加速器地址,以阿里云为例

在这里插入图片描述
在这里插入图片描述
使用加速器地址,以阿里云为例

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://2mkskfi4.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值