与虚拟机的区别如下图所示,相比于


镜像、容器实例、仓库
仓库 类似于 github,是存放镜像的地方
仓库和 maven 仓库一样有公有和私有仓库之分
最大的公有仓库是 hub.docker.com
国内最常用的仓库是阿里云
仓库里存放的都是镜像
镜像 是对应用和其依赖、环境等配属物的容器
镜像相当于一个模板,这个模板是一个文件
镜像通常可以包含一个完整的文件系统
镜像可以分层构建,并且不包含任何动态数据
容器实例 是镜像的一个运行进程
镜像运行后得到一个容器实例,所有容器都是通过镜像创建的
一个镜像可以同时运行处多个容器实例

rootfs
是一套精简的 linux 文件系统,docker 镜像的运行也是基于 linux 的,只不过是基于简化版 linux
docker container
docker 容器
libcontainer(?)
docker 的 rootfs 只是一套精简的 linux 文件系统,若容器需要linux的一些特性则通常需要依赖 libcontainer
docker 通过 libcontainer 从 rootfs 上区分出不同的容器
docker registry
docker 仓库
docker client
docker 客户端,通常用来发出指令
docker daemon
docker 的守护进程,运行在主机上
包括两个部分
docker driver
驱动,包括网络驱动、图形驱动等
docker 镜像的文件系统是分层的,在下载镜像时可以看到相关现象

这是 docker 的 UnionFS,联合文件系统,以下是 UnionFS 自底而上的组成

docker 的获取和安装可以参考 官网
linux 系统要求
通过下面指令查看
cat /etc/redhat-release
uname -r

卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

安装 gcc
yum -y install gcc

yum -y install gcc-c++

安装 yum-utils
yum install -y yum-utils

添加 stable 仓库
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

刷新 yum 缓存(可选)
yum clean all
yum makecache fast
yum update

安装 docker
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
如果安装失败,重新刷新 yum 缓存

启动 docker 服务
systemctl start docker
运行 hello world 验证启动
docker run hello-world

查看 docker 进程
ps -ef |grep docker

查看 docker 版本
docker version

停止 docker 服务
system stop docker
从 yum 卸载
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
删除 docker 的镜像、容器、卷和用户配置
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
获取加速器地址,以阿里云为例


使用加速器地址,以阿里云为例
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://2mkskfi4.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker