dcoeker学习总结(2021.11.29待完成)

1,概述

虚拟化技术:容器(应用层)、虚拟机(软件层)

docker:隔离,镜像占用资源小,秒级
vm:GB级

docker基于Go语言开发的

dcoeker学习总结(2021.11.29待完成)

2,docker基础

2.1,架构

dcoeker学习总结(2021.11.29待完成)

图1 架构图

镜像(image)

​ docker镜像就像一个模板,例如:redis镜像》run》redis容器(对外提供服务)

​ 一个镜像可以创建多个容器!!!

容器(container)

​ 利用容器技术独立运行一个或者一组应用,通过镜像创建

​ 启动、停止、删除

仓库(repository):类似github、gitlab代码仓库

​ 存放镜像的地方:公有仓库和私有仓库

2.2,安装docker

dcoeker学习总结(2021.11.29待完成)

图2 查看自己的服务器内核情况

dcoeker学习总结(2021.11.29待完成)

图3 通过数据库

# 1,先删除老版本
sudo apt-get remove docker docker-engine docker.io containerd runc

# 2,设置仓库
sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
    
# 3,直接进入阿里云docker加速镜像设置国内的镜像地址(https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://g8kfoxhi.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

# 4,安装docker
 sudo apt-get update
 sudo apt-get install docker-ce docker-ce-cli containerd.io

# 5,查看是否安装成功(执行hello-world程序)
docker search hello-world
docker pull hello-world
docker run hello-world

# 其他 docker的资源路径
/var/lib/docker 
# 如果想要协助该资源则可以直接
rm -rf /var/lib/docker

2.3,docker hello-world启动流程

dcoeker学习总结(2021.11.29待完成)

图4 docker镜像启动流程

2.4,底层原理

docker是怎么工作?

​ docker是一个Client-Server结构的系统,docker的守护进程运行在主机上。通过socket从客户端访问!

dcoeker学习总结(2021.11.29待完成)

图5 docker底层

docker为什么比虚拟机快?

​ 1,docker只在应用层进行抽象

​ 2,docker(秒级别)利用的是宿主机的内核,vm(分钟级别)需要Guest OS

​ 所以说,新建一个容器的时候,docker不需要像虚拟机那样重新加载一个操作系统内核,避免引导!

dcoeker学习总结(2021.11.29待完成)

图6 虚拟机与docker架构区别

dcoeker学习总结(2021.11.29待完成)

图7 docker与虚拟机的性能差异

备注:当前docker也支持全平台

2.5,docker常用命令

帮助命令

docker version		# 显示版本
docker info				# 系统信息
docker [命令] --help			# 帮忙命令

镜像命令

docker images			# 查看所有镜像

REPOSITORY 

搜索

docker search [namelike]

Options:
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print search using a Go template
      --limit int       Max number of search results (default 25)
      --no-trunc        Don't truncate output

下载

docker pull [name]			# 如果不写tag,默认就是latest

Usage:  docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Pull an image or a repository from a registry
Options:
  -a, --all-tags                Download all tagged images in the repository
      --disable-content-trust   Skip image verification (default true)
      --platform string         Set platform if server is multi-platform capable
  -q, --quiet                   Suppress verbose output
  
例如:
docker pull mysql
docker pull docker.io/library/mysql:latest  # 等价

删除镜像

docker rmi -f ${docker images -qa} # 删除所有
docker rmi -f [镜像id 镜像id ...] # 删除单个或多个

3,

4,

参考链接:

https://docs.docker.com/get-started/overview/

遇见狂神说-b站视频

上一篇:2021-10-29


下一篇:[2021-10-29]软考routine-每日一题-DAY3