准备工作
由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:
sudo apt-get remove docker docker-engine docker-ce docker.io
APT安装
更新apt包索引:
sudo apt-get update
安装以下包以使apt可以通过HTTPS使用存储库(repository):
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
鉴于国内网络问题,强烈建议使用国内源
为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 官方源
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
向source.list
中添加 Docker 软件源:
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
# 官方源
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安装最新版本的Docker CE:
sudo apt-get update
sudo apt-get install -y docker-ce
启动 Docker CE
sudo systemctl enable docker
sudo systemctl start docker
建立 docker 用户组
默认情况下,docker
命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root
用户和 docker
组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root
用户。因此,更好地做法是将需要使用 docker
的用户加入 docker
用户组。
建立 docker
组:
sudo groupadd docker
将当前用户加入 docker
组:
sudo usermod -aG docker $USER
退出当前终端并重新登录,进行如下测试。
验证docker
查看docker服务是否启动:
systemctl status docker
若未启动,则启动docker服务:
sudo systemctl start docker
测试 Docker 是否安装正确:
sudo docker run hello-world
有以下输出,表示docker安装成功.
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
镜像加速器
国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,例如:
- Azure 中国镜像
https://dockerhub.azk8s.cn
- 阿里云加速器(需登录账号获取)
- 网易云加速器
https://hub-mirror.c.163.com
由于镜像服务可能出现宕机,建议同时配置多个镜像。各个镜像站测试结果请到 docker-practice/docker-registry-cn-mirror-test 查看。
国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考官方文档。
本节我们以 Azure 中国镜像 https://dockerhub.azk8s.cn
为例进行介绍。
添加源
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://hub-mirror.c.163.com"
]
}
注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。
重新启动服务
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
注意:如果您之前查看旧教程,修改了
docker.service
文件内容,请去掉您添加的内容(--registry-mirror=https://dockerhub.azk8s.cn
)。
卸载Docker
1. 删除某软件,及其安装时自动安装的所有包
sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
2. 删除docker其他没有没有卸载
dpkg -l | grep docker
3.卸载没有删除的docker相关插件(结合自己电脑的实际情况)
root@baidu:~# dpkg -l | grep docker
rc docker-ce 5:19.03.8~3-0~ubuntu-xenial amd64 Docker: the open-source application container engine
继续删除
sudo apt-get autoremove docker-ce-*
4.删除docker的相关配置&目录
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker
5.确定docker卸载完毕
docker -v
https://yeasy.gitbooks.io/docker_practice/install/ubuntu.html
https://yeasy.gitbooks.io/docker_practice/install/mirror.html