前置准备
卸载旧版本(可选)。旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:
apt-get remove docker docker-engine docker.io
依赖安装。由于 apt 源使用 HTTPS ,需要添加使用 HTTPS 传输的软件包以及 CA 证书。
apt-get update
apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
添加软件源的 GPG 密钥。
# 阿里源
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 官方源
# curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
向 sources.list 中添加 Docker 软件源:
# 阿里云docker源
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian \
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
# docker官方源
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 Docker
更新 apt 软件包缓存,并安装 docker-ce。
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io
systemctl enable docker
systemctl start docker
建立 docker 用户组
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
建立 docker 组:
groupadd docker
将当前用户加入 docker 组:
usermod -aG docker $USER
使用脚本自动安装(可选)
在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Debian 系统上可以使用这套脚本安装,另外可以通过 --mirror 选项使用国内源进行安装:
若你想安装测试版的 Docker, 请从 test.docker.com 获取脚本
curl -fsSL test.docker.com -o get-docker.sh
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun
sh get-docker.sh --mirror AzureChinaCloud
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。
个性化配置
编辑/etc/docker/daemon.json
- 配置镜像加速
- 取消防火墙支持
- 自定义docker0IP地址范围
{
"iptables": false,
"bip": "10.91.0.1/16",
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
配置及完成后重新启动服务。
systemctl daemon-reload
systemctl restart docker