目录
前言
本文为学习笔记,记录一些doker的简单操作和流程,目的是方便开发,和便于后期查找、回忆。
一、Docker简介
概述
Docker是一个虚拟化平台(官网 https://www.docker.com/),诞生于 2013 年初,基于 Google 公司的 Go 语言进行实现。可以通过虚拟化方式,为应用提供可运行的容器。基于这种方式,可更快地打包、测试以及部署应用程序。
Docker核心对象
镜像(Image)
Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。例如JDK镜像、Centos镜像、MySQL镜像等。
容器(Container)
Docker容器可以将其理解为一个运行镜像的载体,镜像(Image)和容器(Container)的关系,就像是光盘和光驱。容器基于镜像创建、启动,然后运行镜像的中的文件。
Docker应用架构分析
架构图
Docker 是一种Client/Server架构的应用程序,如图所示:
(参考docker官网 https://docs.docker.com/get-started/overview/)
- Docker Host是我们的docker宿主机(就是安装了docker的操作系统)
- Registry是docker拉取镜像的远程仓库,提供大量的镜像供下载,下载完成之后保存在Images中。
- Docker Daemon是docker的服务线程,处理Docker客户端命令。
- Images 是Docker本地的镜像仓库,可以通过docker images查看镜像文件。
Docker运行机制
docker pull 执行过程:
(1)客户端将指令发送给docker daemon
(2)docker daemon 先检查本地images中有没有相关的镜像
(3)如果本地没有相关的镜像,则向镜像服务器请求,将远程镜像下载到本地
docker run 执行过程:
(1)检查本地是否存在指定的镜像,不存在就从公有仓库下载
(2)利用镜像创建并启动一个容器
(3)分配一个文件系(简版linux系统),并在只读的镜像层外面挂载一层可读写层
(4)从宿主机配置的网桥接口中桥接一个虚拟接口到容器中去
(5)从地址池配置一个 ip 地址给容器
(6)执行用户指定的应用程序
二、Docker安装及基本操作
卸载Docker
假如已经有docker,可通过执行如下指令卸载Docker:
sudo yum remove docker-ce \
docker-ce-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装Docker
在线安装
第一步:安装一组工具
sudo yum install -y yum-utils
第二步:设置 yum 仓库地址
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
第三步:更新 yum 缓存
sudo yum makecache fast
第四步:安装新版 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
第五步:查看docker 安装状态
docker info
第六步:启用Docker镜像加速(选做)
由于国内网络问题,需要配置加速器来加速。修改配置文件 /etc/docker/daemon.json
下面命令直接生成文件 daemon.json
cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
"max-concurrent-downloads": 10,
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"data-root": "/var/lib/docker"
}
EOF
说明:在执行如上指令时,保证你的登录用户为root管理员用户,并且设置好以后重启docker服务。
第七步:
重新启动服务
# 重新加载docker配置
sudo systemctl daemon-reload
#重启docker服务
sudo systemctl restart docker
Docker基本操作
启动服务
systemctl start docker
查看Docker状态
systemctl status docker
设置Docker开机自启
systemctl enable docker