一、docker基础
1.1Docker基本概念
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
1.2Docker组成
Docker是一个C/S模式的架构,后端是一个松耦合架构,众多模块各司其职。
一个完整的Docker有以下几个部分组成:
- DockerClient客户端
- Docker Daemon守护进程
- Docker Image镜像
- DockerContainer容器
1.3Docker核心
docker的三大核心:镜像,容器,仓库
镜像:镜像是一个只读文件和文件夹组合,是docker容器启动的先决条件
容器:容器是镜像的运行实体
容器运行着真正的应用进程
容器有初建,运行,停止,暂停和删除五种状态
在容器内部,无法看到主机上的进程,环境变量,网络等信息
仓库:docker的镜像仓库是用来存储和分发docker镜像
二.Docker整体架构及底层通信原理简述:
1.用户是使用Docker Client 与Docker Daemon 建立通信,并发送请求给后者
2.Docker Daemon 作为Docker架构中的主体部分,首先提供的Docker Server的功能使其可以接受Docker Client的请求。
3.Docker Engne执行 Docker内部一系列工作,每一项工作都是一个Job的形式存在。
4.Job运行的过程中,当需要容器镜像时,则从Docker Registry中下载镜像,并通过镜像管理驱动 Graph driver将下载镜像以Graph的形式存储。
5.当需要为Docker创建网络环境时,通过网络管理驱动 Network driver 创建并配置Docker网络环境。
6.当需要限制Docker容器运行资源或执行用户指令等操作时,则通过Exec driver来完成。
7.Libcontainer是一项独立的容器管理包,Network driver以及Exec都是通过Libcontainer来实现具体对容器进行的操作。
三.docker安装(Centos7系统)
1.确定系统版本(Linux内核版本太低无法运行docker,建议centos7.5或红帽8及以上版本)
cat /etc/redhat-release
2.卸载旧版本(如果是没有忽略)
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.yum 安装gcc相关
yum -y install gcc
yum -y install gcc-c++
4.安装需要的软件包
yum install -y yum-utils
5.设置yum仓库(这里使用的阿里源)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
6.更新yum源
yum makecache fast
7.安装docker-ce
yum -y install docker-ce docker-ce-cli containerd.io
8.启动docker
systemctl start docker
ps -ef |grep docker #查看docker
9.测试
docker run hello-world #运行镜像
10.docker卸载方式
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd```