什么是 Docker
Docker 是一个虚拟化容器引擎,完全使用沙箱隔离机制,较传统的 VM 虚拟机有很大优势。
传统虚拟机(VM)和虚拟化容器(Docker)的区别:
- 传统的 VM 虚拟机不能共享资源 , 比如在 VMWare 中安装了一个内存为 4GB 的 Linux 操作系统 , 意味着该Linux系统使用了宿主机中固定的 4GB 内存且不能与宿主机或其它虚拟系统共享该资源 , 可能会造成资源浪费或资源溢出
- Docker 弥补了传统 VM 虚拟机的缺点 , 每个虚拟化操作系统可以互相共享资源 , 解决了资源溢出或者资源浪费等一系列问题
Docker 主要概念
Docker 镜像(Image)
- 操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image)就相当于是一个 root 文件系统
- Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如环境变量、用户等)
Docker 容器(Container)
- Docker 镜像和 Docker 容器的关系,就像是面向对象程序设计中的类与对象,镜像是静态的定义
- 容器是镜像运行时的实体,可以被创建、启动、停止、删除、暂停等
- 容器内的进程是运行在一个隔离的环境里,使用起来就好像是在一个独立于宿主的系统下操作一样,这种特性使得容器封装的应用比直接在宿主运行更加安全
Docker 仓库(Registry)
- 镜像构建完成之后,一行命令就可以在当前的宿主机上运行起来,但是如果要在其它服务器上使用这个镜像,就需要一个集中存储镜像的仓库 — 即 Docker 仓库
- 公有 Docker Registry:最常使用的 Registry 公开服务是官方的 Docker Hub,但在国内访问会比较慢,而国内的一些云服务商提供了针对 Docker Hub 的镜像服务,常见的有 阿里云、DaoCloud 加速器,比直接从 Docker Hub 下载速度会提高很多
- 私有 Docker Registry:可以在本地搭建私有 Docker Registry。Docker 官方提供了 Docker Registry 镜像,可以直接使用做为私有 Registry 服务
安装 Docker
方法一:使用脚本自动安装
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
执行这两行命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE Edge 安装在系统中。
方法二:使用 APT 安装
安装一些必要的系统工具
$ sudo apt-get update
$ sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
安装 GPG 证书
$ curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
写入软件源信息
$ sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
更新软件源
$ sudo apt-get -y update
安装 Docker CE
$ sudo apt-get -y install docker-ce
加入 Docker 用户组
安装之后,默认情况下,Docker 命令会使用 Unix socket 与 Docker 引擎通讯,而只有 Root 用户和 Docker 组的用户才可以访问 Docker 引擎的 Unix socket,一般 Linux 系统上不会直接使用 Root 用户。因此,更好地做法是将需要使用 Docker 的用户加入 Docker 用户组。
- 建立 Docker 用户组
$ sudo groupadd docker
- 将用户加入 Docker 用户组
$ sudo usermod -aG docker $USER
本文首发于:https://antoniopeng.com
配置镜像加速器
由于国内从 Docker Hub 下载镜像有时会非常缓慢,因此可以配置国内云服务商提供的镜像加速器:
阿里云镜像加速器
添加镜像加速器
- 登录阿里云
- 进入 容器镜像服务控制台 > 镜像加速器
- 添加镜像加速器
- 复制加速器地址,如下图
Ubuntu 14.04、Debian 7 Wheezy 系统配置
-
编辑 docker 配置文件
$ sudo nano /etc/default/docker
-
添加以下代码
DOCKER_OPTS="--registry-mirror=<镜像加速器地址>"
-
重启 Docker 服务
$ sudo service docker restart
Ubuntu 16.04+、Debian 8+、CentOS 7 系统配置
-
编辑 daemon.json 配置文件
$ sudo nano /etc/docker/daemon.json
-
添加以下代码
{ "registry-mirrors": [ "<镜像加速器地址>" ] }
-
重启 Docker 服务
$ sudo systemctl daemon-reload $ sudo systemctl restart docker
-
检查加速器是否生效
$ docker info
看到输出以下内容,说明镜像加速器配置成功
Registry Mirrors: <镜像加速器地址>
-
文章作者:彭超
-
本文首发于个人博客:https://antoniopeng.com/2019/07/06/docker/%E5%9F%BA%E4%BA%8EUbuntu%E5%AE%89%E8%A3%85Docker/
-
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 彭超 | Blog!