Docker For Ubuntu

Ubuntu 是 docker 第一个支持的系统发行版, 截止到目前, 我们也依然推荐在生产环境中使用 Ubuntu 系统. 虽然我也很喜欢 CentOS, 但是在 docker 这件事儿中, Ubuntu 确实是最合适的系统选择

系统需求

  • 64bit Yakkety 16.10
  • 64bit Xenial 16.04 (LTS) <== 个人推荐使用此版本的 Ubuntu 发行版
  • 64bit Trusty 14.04 (LTS)

卸载老版本 Docker Engine

老版本的 Docker 被叫做 dockerdocker-engine 如果系统当前有这些版本的系统, 那么你需要先卸载他们

1
$ sudo apt-get remove docker docker-engine

需要 apt-get 命令的回显显示没有相关的软件包被安装

/var/lib/docker 目录下, 包含了镜像, 容器, 数据卷网络配置

Ubuntu Trusty 14.04 额外安装的软件包

在官方文档中, 强烈推荐 Ubuntu14.04版本如果使用aufs 存储引擎, 那么一定要安装以下软件包

1
2
3
4
5
$ sudo apt-get update

$ sudo apt-get install \
linux-image-extra-$(uname -r) \
linux-image-extra-virtual

安装 Docker

从软件源中安装 Docker

配置软件仓库 Docker-CE

  • 安装软件包, 以允许apt命令可以通过 https 协议使用软件源(repository)
1
2
3
4
5
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
  • 安装 Docker 官方 GPG key
1
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • 配置 stable 版本的软件源
1
2
3
4
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

安装 Docker CE

  • 更新系统软件
1
$ sudo apt-get update
  • 安装最新版本的 Docker CE
1
$ sudo apt-get install docker-ce
  • 在生产环境, 你可能需要安装指定版本的 Docker,
1
$ sudo apt-get install docker-ce=<VERSION>

docker-ce 在安装好后自动启动

  • 启动 Docker CE
1
2
$ sudo systemctl start docker
$ sudo systemctl enable docker
  • 验证 Docker 服务正常运行
1
$ sudo docker run hello-world
  • 添加用户到 Docker 组

在生产环境中, 不是每个人登录都是使用 root 用户, 可能需要给普通用户操作 docker 的权限, 那么将该用户添加到 docker 组是简单方便的方式

1
$ sudo usermod -aG docker your-user
  • 升级 Docker CE
1
$ sudo apt-get update

使用软件包直接安装

  • 下载对应版本的 .deb 软件包

Docker CE: Go to https://download.docker.com/linux/ubuntu/pool/stable-17.03/amd64/ and download the .deb

  • 安装软件包
1
$ sudo dpkg -i /path/to/package.deb

The Docker daemon starts automatically.

  • 验证 Docker 服务正常运行
1
$ sudo docker run hello-world

卸载 Docker CE

  • 卸载 Docker CE
1
$ sudo apt-get purge docker-ce
  • 镜像/容器/数据卷和自定义配置文件不会随着卸载而自动删除, 你需要手动去清除他们
1
$ sudo rm -rf /var/lib/docker