Docker Community Edition 镜像使用帮助

Fedora/CentOS/RHEL

如果你之前安装过 docker,请先删掉

1
sudo yum remove docker docker-common docker-selinux docker-engine

安装一些依赖

1
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

根据你的发行版下载repo文件:

1
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo

把软件仓库地址替换为 TUNA:

1
sudo sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo

最后安装:

1
sudo yum install docker-ce

Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd。

Docker 和传统虚拟化方式的不同之处

传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。


镜像

一个只读层被称为镜像,一个镜像是永久不会变的。

由于 Docker 使用一个统一文件系统,Docker 进程认为整个文件系统是以读写方式挂载的。

但是所有的变更都发生顶层的可写层,而下层的原始的只读镜像文件并未变化。

由于镜像不可写,所以镜像是无状态的。

基础镜像: 一个没有任何父镜像的镜像。


Reference :

  1. Docker Community Edition 镜像使用帮助
  2. Docker — 从入门到实践
  3. linux工具apt、yum和dnf运用