本文假设系统为 Ubuntu,从 16.04 到 24.04,且通过 APT 命令安装。理论上也其他 Debian 系的操作系统。
WSL 也一样。
感觉 Docker 官方在强推 Docker Desktop,搜索 Docker 安装文档,一不小心就被导航到了 Docker Desktop 的安装页面。如果只是想安装 Docker-CE Server,文档在 https://docs.docker.com/engine/install/#server。
官方文档给出了几种安装方式,我最喜欢的是通过 APT 仓库安装,可以像管理系统上的其他软件包一样用 apt install
、apt upgrade
、apt remove
进行管理。但直接用 Docker 官方的 APT 仓库可能会下载很慢,幸好国内有镜像源。
安装
step 0. 安装设置仓库必须的工具
这些工具一般系统上都有,但还是确认一下比较好。
Ubuntu 16.04
sudo apt-get update && sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
Ubuntu 18.04 及以上
sudo apt update && sudo apt install -y ca-certificates curl gnupg lsb-release
20.04以上快捷安装 sudo apt install docker.io 也是可行的
step 1. 添加阿里的 Docker 镜像仓库证书
Ubuntu 20.04 及以下
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
Ubuntu 22.04、24.04
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/aliyun-docker.gpg
如果 Ubuntu 22.04 还用apt-key add
的方式添加证书在同步仓库信息时会有以下 warning:
Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
step 2. 添加仓库
Ubuntu 16.04
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
Ubuntu 18.04 、20.04
sudo apt-add-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
Ubuntu 22.04、24.04
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/aliyun-docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
step 3. 安装
安装最新版的 docker-ce。
Ubuntu 16.04
sudo apt-get update
sudo apt-get install -y docker-ce
Ubuntu 18.04 及以上
sudo apt update
sudo apt install -y docker-ce
step 4. 启动
未开启 systemd 的 WSL 发行版
在 WSL 上,如果未开启 systemd,docker 不会自启动,每次都需要手动执行下面的命令。
sudo service docker start
其他系统
安装完就自己启动了,不需要任何操作。
step 5. 验证
sudo docker info
应该能看到当前安装的 Docker 信息。
基本配置
将当前用户添加到 docker 用户组
每次都用 sudo 执行 docker 命令也太麻烦了,可以将当前用户添加到 docker 用户组,以后就不需要 sudo 了。
sudo usermod -aG docker $USER
newgrp docker
如果报错说不存在 docker group,就先用下面的命令创建 docker group,然后再执行上面添加用户到组的命令。
sudo groupadd docker
配置 ustc 的 docker hub 镜像
国内的 docker hub 镜像都下架了。本段失效
执行 docker image pull 时默认会去 https://hub.docker.com/ 拖镜像,但网速可能会比较慢。可以配置国内的第三方 registry,他们会缓存用户拖过的镜像,下载会快很多。
在 /etc/docker/daemon.json
加入如下配置。
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}
ustc 的这个 registry 是我知道的唯一不需要申请账户的。如果你有其他 registry,也可以添加到上面的列表中。
不管在这个文件中写入了什么配置,都不会自动生效,一般都得重启。
Ubuntu 18.04 及以上
一般 ubuntu 系统都是使用 systemd 启动 docker,要执行下面的指令才能让上面的配置生效:
sudo systemctl
daemon-reload
sudo systemctl restart docker
Ubuntu 16.04 或未开启 systemd 的 WSL
重启 docker 就行。
sudo service docker restart
20241125 目前可用docker镜像源
#镜像地址
{"registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com/","https://ccr.ccs.tencentyun.com/","https://docker.m.daocloud.io/"]
}#修改后要重启
参考
- Install Docker Engine on Ubuntu | Docker Documentation
- docker-ce镜像_docker-ce下载地址_docker-ce安装教程-阿里巴巴开源镜像站 (aliyun.com)
- 【Docker】在 Ubuntu 上安装 Docker 的详细指南_ubuntu安装docker-CSDN博客