Docker

docker的介绍和基础操作
docker 单机容器
docker compose 单机多个容器
k8s  多机多个容器
container即容器,集装箱
docker就是搬运集装的码头工人,管理容器的管理工具
Docker的组成
Docker 主机(Host): 一个物理机或虚拟机,用于运行Docker服务进程和容器,也称为宿主机, node节点
Docker 服务端(Server): Docker守护进程,运行docker容器 
Docker 客户端(Client): 客户端使用 docker 命令或其他工具调用docker API 
Docker 镜像(Images): 镜像可以理解为创建实例使用的模板,本质上就是一些程序文件的集合 
Docker 仓库(Registry): 保存镜像的仓库,官方仓库: https://hub.docker.com/,可以搭建私有仓库harbor 
Docker 容器(Container): 容器是从镜像生成对外提供服务的一个或一组服务,其本质就是将镜像中 的程序启动后生成的进程
docker是什么样的逻辑帮我们运行容器的,核心技术是什么Namespace和control groups
Namespace

隔离类型

功能

系统调用参数

内核版本

MNT Namespace(mount)

提供磁盘挂载点和文件系统的 隔离能力

CLONE_NEWNS

2.4.19

IPC Namespace(InterProcess Communication)

提供进程间通信的隔离能力, 包括信号量,消息队列和共享内存

CLONE_NEWIPC

2.6.19

UTS Namespace(UNIX Timesharing System)

提供内核,主机名和域名隔离能力

CLONE_NEWUTS

2.6.19

PID Namespace(Process Identification)

提供进程隔离能力

CLONE_NEWPID

2.6.24

Net Namespace(network)

提供网络隔离能力,包括网络 设备,网络栈,端口等

CLONE_NEWNET

2.6.29

User Namespace(user)

提供用户隔离能力,包括用户和组

CLONE_NEWUSER

3.8

control group是实现资源限制的核心技术,依赖于内核
容器管理工具
核心管理工具docker

容器技术建议跑一些轻量级的应用,重量级应用慎用。如MySQL,排错效率太低

安装docker

安装docker服务端,二进制安装使用脚本(开启加速)
安装docker客户端,二进制安装使用脚本(开启加速)
包安装:apt install docker.io
查看服务
[root@ubuntu2004 ~]#systemctl status docker.service
包安装的多一个socket用于连接docker客户端的服务
安装docker后会增加一个新的网卡docker0
docker自动生成IPtables规则

docker version 查看版本
docker info    查看详细信息(包含加速信息)
拉取镜像:(可在阿里云/官网/自己搭建的仓库取拉取镜像)
[root@ubuntu2004 ~]#docker pull nginx

运行镜像:
[root@ubuntu2004 ~]#docker run -d --name nginx nginx

查看镜像列表及大小:
[root@ubuntu2004 ~]#docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    605c77e624dd   9 months ago   141MB

查看运行的容器
[root@ubuntu2004 ~]#docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES
83090c35f1dd   nginx     "/docker-entrypoint.…"   3 minutes ago   Up 3 minutes   80/tcp    nginx

拉取的镜像存放位置
/var/lib/docker/overlay2/镜像ID

显示镜像完整ID
[root@ubuntu2004 ~]#docker images --no-trunc

查看镜像详细信息
[root@ubuntu2004 ~]#docker inspect nginx