一、docker运行流程
举个例子你想使用MySQL镜像,那么执行docker pull 下载镜像的时候 首先它会在本地仓库进行运行,如果本地仓库有你想要的MySQL镜像 那么它会直接拿来用无需下载 那么如果你本地仓库没有的情况下 它会在远程仓库进行下载之后在通过下载之后的镜像来启动你想要的MySQL
辅助命令
docker version/用来查看客户端引擎和server端引擎的版本信息
docker info/用来查看docker引擎的详细信息
docker –help/用来查看帮助信息
二、docker镜像分层原理2.1、镜像
一个镜像代表一个软件 软件包 用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需得所有内容,包括代码、运行时所需的库、环境变量和配置文件
docker镜像为什么这么大:一个软件镜像不仅仅是原来的软件包,包含软件包所需的操作系统依赖 软件自身依赖 以及自身软件包组成
为什么docker镜像采用分层镜像原理:
注意:docker在设计竟像是每一个镜像都是有n个镜像共同组成
原理:UnionFS(联合文件系统)
2.2、UnionFS联合文件系统
就是一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各个文件系统叠加起来,这样最终的文件系统会包含所有底层得文件和目录
为什么采用UnionFS:好处:最大的一个好处就是资源共享 采用分层机制实现基础层共享 从而减小docker仓库得整体体积
三、docker运行机制
docker并不是容器,他是管理容器的引擎;
docker服务启动——下载镜像——启动该镜像得到一个容器——容器里运行着我们想要的程序
四、docker安装4.1、检查环境
# 系统内核需要 3.10 以上[root@docker ~]# uname -r3.10.0-1127.el7.x86_64# 查看系统版本[root@docker ~]# cat /etc/os-releaseNAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="7"PRETTY_NAME="CentOS Linux 7 (Core)"ANSI_COLOR="0;31"CPE_NAME="cpe:/o:centos:centos:7"HOME_URL="https://www.centos.org/"BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-7"CENTOS_MANTISBT_PROJECT_VERSION="7"REDHAT_SUPPORT_PRODUCT="centos"REDHAT_SUPPORT_PRODUCT_VERSION="7"
4.2、安装docker
# 卸载旧版本$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine# 安装依赖包$ sudo yum install -y yum-utils# 设置镜像仓库(不推荐使用官方仓库,速度很慢)$ 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 docker-ce docker-ce-cli containerd.io
4.3、启动测试
# 服务方式启动$ sudo systemctl start docker# 查看版本$ sudo docker version# 测试运行容器$ sudo docker run hello-world# 查看下载的镜像[root@docker ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest feb5d9fea6a5 11 months ago 13.3kB
五、卸载docker
# 停止服务$ sudo systemctl start docker# 卸载相关依赖$ sudo yum remove docker-ce docker-ce-cli containerd.io# 清空工作路径$ sudo rm -rf /var/lib/docker