Skip to content

Docker 安装教程

更新: 4/19/2025 字数: 0 字 时长: 0 分钟

Docker 是一种流行的容器化平台,可以帮助开发者轻松地构建、打包、部署和运行应用程序。

本教程将指导你在 Linux 系统上安装 Docker。

先决条件

系统要求

  • 一台运行 Linux 的服务器或虚拟机。
  • 具有 sudo 权限的用户。

卸载旧版本

  • Ubuntu/Debian:

    bash
    for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt remove $pkg; done
    bash
    for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt remove $pkg; done
  • CentOS/RHEL:

    bash
    sudo dnf remove docker \
                    docker-client \
                    docker-client-latest \
                    docker-common \
                    docker-latest \
                    docker-latest-logrotate \
                    docker-logrotate \
                    docker-engine
    bash
    sudo dnf remove docker \
                    docker-client \
                    docker-client-latest \
                    docker-common \
                    docker-latest \
                    docker-latest-logrotate \
                    docker-logrotate \
                    docker-engine \
                    podman \
                    runc

aptdnf 可能会报告您没有安装这些软件包。

更新系统软件包

在安装 Docker 之前,首先要确保你的系统软件包是最新的。打开终端并运行以下命令:

  • Ubuntu/Debian:

    bash
    sudo apt update
    sudo apt upgrade
  • CentOS/RHEL:

    bash
    sudo dnf update

安装方法

一键脚本安装

bash
curl -fsSL https://get.docker.com | bash -s docker

可在此命令后附带 --mirror 参数设置镜像源,以提高国内服务器下载 Docker 的速度

bash
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
bash
curl -fsSL https://get.docker.com | bash -s docker --mirror AzureChinaCloud

使用一键脚本后如何升级 Docker

如果您使用一键脚本安装了 Docker,则应直接使用包管理器升级 Docker。重新运行便捷脚本没有任何好处。如果脚本尝试重新安装主机上已存在的仓库,则重新运行该脚本可能会导致问题。

包管理器安装

Ubuntu/Debian

  1. 安装必要的依赖包:

    bash
    sudo apt update
    sudo apt install ca-certificates curl gnupg
  2. 信任 Docker 的 GPG 公钥并添加仓库:

    bash
    sudo install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.gpg
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
      "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
      tee /etc/apt/sources.list.d/docker.list > /dev/null
    bash
    sudo install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.gpg
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
      "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
      tee /etc/apt/sources.list.d/docker.list > /dev/null
  3. 安装 Docker Engine:

    bash
    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

CentOS/RHEL

  1. 设置软件仓库:

    bash
    sudo dnf -y install dnf-plugins-core
    sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    bash
    sudo dnf -y install dnf-plugins-core
    sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
  2. 仓库地址替换为镜像站:

    bash
    sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
  3. 安装 Docker Engine:

    bash
    sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

后续步骤

启动 Docker 服务

安装完成后,启动 Docker 服务并设置开机自启动:

bash
sudo systemctl start docker   # 启动 Docker 服务
sudo systemctl enable docker  # 设置开机自启动

# 或者一步到位
sudo systemctl enable --now docker

查看 Docker 服务是否正在运行:

bash
sudo systemctl status docker

验证 Docker 安装

运行以下命令来验证 Docker 是否成功安装:

bash
docker run hello-world

如果一切顺利,你将会看到 Docker 从 Docker Hub 下载 hello-world 镜像,并运行一个容器,输出一段欢迎消息。

可选步骤

配置 Docker 用户权限

默认情况下,只有 root 用户或具有 sudo 权限的用户才能运行 Docker 命令。为了方便使用,你可以将当前用户添加到 docker 用户组:

  1. 创建 docker 用户组:

    bash
    sudo groupadd docker
  2. 将您的用户添加到 docker 组中:

    bash
    sudo usermod -aG docker $USER
  3. 注销并重新登录,以便重新评估您的群组成员资格。

    如果您在虚拟机中运行 Linux,则可能需要重新启动虚拟机才能使更改生效。

    您还可以运行以下命令来激活对组的更改:

    bash
    newgrp docker

安装 Docker Compose

Docker Compose 用于定义和管理多容器 Docker 应用程序。

官方一键安装脚本通常已包含 Docker Compose,因此手动安装可能不是必需的。

  1. 下载 Docker Compose 二进制文件:

    bash
    sudo curl -L "https://github.libk.top/https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    bash
    sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
  2. 验证 Docker Compose 安装

    bash
    docker-compose --version

提示

docker composedocker-compose 的使用取决于你的安装方式:

  • docker compose:如果你通过 dnf install docker-compose-plugin 或类似的包管理器安装了 docker-compose-plugin,这是推荐的命令。
  • docker-compose:如果你没有安装 docker-compose-plugin,而是按照上面的步骤手动安装的,则使用此命令。

卸载 Docker Engine

Ubuntu/Debian

  1. 卸载 Docker Engine、CLI、containerd 和 Docker Compose 软件包:

    bash
    sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
  2. 主机上的镜像、容器、卷或自定义配置文件不会自动删除。要删除所有镜像、容器和卷,请执行以下操作:

    bash
    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd
  3. 删除源列表和密钥环

    bash
    sudo rm /etc/apt/sources.list.d/docker.list
    sudo rm /etc/apt/keyrings/docker.asc

您必须手动删除任何已编辑的配置文件。

CentOS/RHEL

  1. 卸载 Docker Engine、CLI、containerd 和 Docker Compose 软件包:

    bash
    sudo dnf remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
  2. 主机上的镜像、容器、卷或自定义配置文件不会自动删除。要删除所有镜像、容器和卷,请执行以下操作:

    bash
    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd

您必须手动删除任何已编辑的配置文件。

资源链接

贡献者

The avatar of contributor named as wkwbk wkwbk

页面历史