Ubuntu 中安装 Docker CE
准备工作
- 系统要求
- ununtu 16.04 LTS
- 卸载旧版本
如果安装有旧版本的docker(旧版本的 Docker 称为
docker
或者docker-engine
) ,先卸载它$ sudo apt-get remove docker docker-engine docker.io containerd runc
1. 安装
1.1 使用 apt
安装
由于
apt
源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
鉴于国内网络问题,建议使用国内源,注释部分是官方源
# 官方源
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 中科大的源
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
下面添加 docker 软件源
# $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。
更新 apt 软件包缓存,并安装
docker-ce
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
注:也可以指定版本安装
# $ apt-cache madison docker-ce
# $ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
$ sudo docker run hello-world1.2 手动安装
# https://download.docker.com/linux/ubuntu/dists/ 在这里选择下载安装包
$ sudo dpkg -i /path/to/package.deb1.3 使用脚本自动安装
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
# $ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud
1.4 测试安装成功
2 使用非 root
用户管理 docker
2.1 创建 docker 用户组
现在安装完成,会自动创建docker 用户组
# $ sudo groupadd docker
# 将当前用户添加到 docker 组
$ sudo usermod -aG docker $USER
重新登录,进行测试
$ newgrp docker
$ docker run hello-world如果遇到以下错误提示:
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied两个方法解决:
- 把 用户目录下的
.docker
文件夹删除- 使用下面的命令修复
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R
3 配置docker 自启
$ sudo systemctl enable docker
# 取消自启
$ sudo systemctl disable docker
4 配置镜像加速
前面看到了我们使用镜像时,镜像拉取特别慢,有些甚至无法获取。这时候我们可以配置镜像加速。
国内一些云服务商提供了国内的镜像加速服务
如:
4.1 配置
- 新的版本修改配置文件
/etc/docker/daemon.json
:
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://hub-mirror.c.163.com",
"https://ktrsh7na.mirror.aliyuncs.com"
]
}
- 老版教程 编辑
/etc/systemd/system/multi-user.target.wants/docker.service
文件
# 找到 ExecStart= 追加 --registry-mirror=https://ktrsh7na.mirror.aliyuncs.com
注意: 上面提到的两种方法,只能使用一种,不能同时修改
然后重启docker服务
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
下面检查加速器是否生效
$ docker info
4.2 应用
国内无法直接获取
gcr.io/*
镜像,我们可以将gcr.io//:
替换为gcr.azk8s.cn//:
# $ docker pull gcr.io/google_containers/hyperkube-amd64:v1.9.2
$ docker pull gcr.azk8s.cn/google_containers/hyperkube-amd64:v1.9.2
5 卸载docker
$ sudo apt-get purge docker-ce
# 上面命令不会自动删除 主机上的镜像、容器、卷或自定义配置文件。 删除所有镜像、容器和卷
$ sudo rm -rf /var/lib/docker