安装docker

前置准备

卸载旧版本(可选)。旧版本的 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
上一篇
下一篇