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

INDEX

      • §1 Docker 是什么
      • §2 架构
        • §2.1 官网图
        • §2.2 架构图
      • §3 安装
        • §3.1 前提
        • §3.2 安装
        • §3.3 启动
        • §3.4 卸载
      • §4 镜像加速器

§1 Docker 是什么

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

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

  • docker 不需要虚拟硬件和操作系统,而是直接使用硬件资源
  • docker 是应用和环境的打包,虚拟机还需要加上一个虚拟操作系统内核
    云原生 | Docker - [简介、架构、安装、加速]_第1张图片

§2 架构

§2.1 官网图

云原生 | Docker - [简介、架构、安装、加速]_第2张图片
镜像、容器实例、仓库
仓库 类似于 github,是存放镜像的地方
仓库和 maven 仓库一样有公有和私有仓库之分
最大的公有仓库是 hub.docker.com
国内最常用的仓库是阿里云
仓库里存放的都是镜像

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

容器实例 是镜像的一个运行进程
镜像运行后得到一个容器实例
一个镜像可以同时运行处多个容器实例

§2.2 架构图

云原生 | Docker - [简介、架构、安装、加速]_第3张图片
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
驱动,包括网络驱动、图形驱动等

§3 安装

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

§3.1 前提

linux 系统要求

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

通过下面指令查看

cat /etc/redhat-release
uname -r

云原生 | Docker - [简介、架构、安装、加速]_第4张图片

卸载旧版本

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

云原生 | Docker - [简介、架构、安装、加速]_第5张图片

安装 gcc

yum -y install gcc

云原生 | Docker - [简介、架构、安装、加速]_第6张图片
yum -y install gcc-c++

云原生 | Docker - [简介、架构、安装、加速]_第7张图片

§3.2 安装

安装 yum-utils

yum install -y yum-utils

云原生 | Docker - [简介、架构、安装、加速]_第8张图片

添加 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 - [简介、架构、安装、加速]_第9张图片
安装 docker

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

如果安装失败,重新刷新 yum 缓存
云原生 | Docker - [简介、架构、安装、加速]_第10张图片

§3.3 启动

启动 docker 服务

systemctl start docker

运行 hello world 验证启动

docker run hello-world

云原生 | Docker - [简介、架构、安装、加速]_第11张图片

查看 docker 进程

ps -ef |grep docker

在这里插入图片描述

查看 docker 版本

docker version

云原生 | Docker - [简介、架构、安装、加速]_第12张图片

§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 镜像加速器

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

云原生 | Docker - [简介、架构、安装、加速]_第13张图片
云原生 | Docker - [简介、架构、安装、加速]_第14张图片
使用加速器地址,以阿里云为例

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

你可能感兴趣的:(云原生,微服务,docker,云原生,架构)