服务器安装Docker:详细步骤与常见问题解答

什么是Docker?为什么要在服务器上安装Docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 的出现极大地简化了应用的部署和管理,尤其在服务器环境中,它带来了诸多优势:

  • 提高资源利用率: Docker 容器相比传统虚拟机更加轻量级,占用资源更少,可以在一台服务器上运行更多应用。
  • 简化部署流程: Docker 将应用及其依赖打包成镜像,保证了运行环境的一致性,避免了因环境差异导致的问题,简化了部署流程。
  • 快速部署和回滚: Docker 容器的启动和停止速度非常快,可以实现应用的快速部署和回滚,提高了运维效率。
  • 隔离性: Docker 容器之间相互隔离,一个容器的故障不会影响其他容器,提高了系统的稳定性。
  • 可移植性: Docker 镜像可以在不同的 Docker 环境中运行,实现了应用的跨平台移植。

因此,在服务器上安装 Docker,可以极大地提升服务器的资源利用率、简化应用部署流程、提高运维效率和系统稳定性,是现代服务器管理的重要组成部分。

服务器安装Docker前的准备工作

在开始安装 Docker 之前,需要确保你的服务器满足以下准备工作:

1. 服务器环境准备

  • 操作系统: Docker 支持多种 Linux 发行版,例如 CentOS、Ubuntu、Debian 等。建议使用主流的 Linux 发行版,本文将以 CentOS 和 Ubuntu 为例进行讲解。
  • 服务器访问权限: 你需要拥有服务器的 root 权限或者具有 sudo 权限的用户,才能进行 Docker 的安装和配置。
  • 网络连接: 服务器需要能够连接互联网,以便下载 Docker 相关的软件包。
  • 系统更新: 建议在安装 Docker 之前,先更新服务器的系统软件包,确保系统处于最新状态,可以使用以下命令进行更新:

    CentOS:

    sudo yum update -y

    Ubuntu/Debian:

    sudo apt update && sudo apt upgrade -y

2. 卸载旧版本Docker(如果存在)

如果你的服务器上之前安装过旧版本的 Docker,建议先卸载旧版本,避免版本冲突。可以使用以下命令卸载:

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

或者对于使用 apt 管理软件包的系统(如 Ubuntu/Debian):

sudo apt-get remove docker docker-engine docker.io containerd runc

卸载完成后,还需要删除 Docker 相关的数据目录,通常位于 `/var/lib/docker` 和 `/var/containerd`。

详细安装步骤(以CentOS 7 和 Ubuntu 20.04 为例)

下面分别介绍在 CentOS 7 和 Ubuntu 20.04 服务器上安装 Docker 的详细步骤。

CentOS 7 安装 Docker

  1. 安装 yum-utils 包: yum-utils 提供了一些 yum 工具,包括 yum-config-manager,用于管理 yum 仓库。
    sudo yum install -y yum-utils
  2. 添加 Docker CE 的 yum 仓库: Docker CE (Community Edition) 是 Docker 的社区版。
    sudo yum-config-manager \
                        --add-repo \
                        https://download.docker.com/linux/centos/docker-ce.repo

    如果访问 Docker 官方仓库速度较慢,可以考虑使用国内镜像源,例如阿里云镜像源:

    sudo yum-config-manager \
                        --add-repo \
                        https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  3. 安装 Docker CE: 使用 yum 安装 Docker CE、containerd.io 和 docker-compose-plugin。
    sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin.x86_64 -y
  4. 启动 Docker 服务: 安装完成后,需要启动 Docker 服务并设置开机自启。
    sudo systemctl start docker
    sudo systemctl enable docker
  5. 验证 Docker 安装是否成功: 运行 hello-world 镜像,验证 Docker 是否安装成功。
    sudo docker run hello-world

    如果看到 “Hello from Docker!” 的信息,则说明 Docker 安装成功。

Ubuntu 20.04 安装 Docker

  1. 安装必要的软件包: apt-transport-https 允许 apt 通过 HTTPS 获取仓库,ca-certificates 用于信任 HTTPS 证书。
    sudo apt-get update
    sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
  2. 添加 Docker 的 GPG 密钥: 用于验证 Docker 仓库的软件包的完整性。
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  3. 添加 Docker APT 仓库:
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

    同样,如果访问 Docker 官方仓库速度较慢,可以考虑使用国内镜像源,例如阿里云镜像源,需要修改 `/etc/apt/sources.list.d/docker.list` 文件内容为:

    deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable
  4. 安装 Docker Engine: 更新 apt 软件包索引并安装 Docker Engine、containerd 和 Docker Compose 插件。
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  5. 启动 Docker 服务: 并设置开机自启。
    sudo systemctl start docker
    sudo systemctl enable docker
  6. 验证 Docker 安装是否成功: 运行 hello-world 镜像。
    sudo docker run hello-world

    如果看到 “Hello from Docker!” 的信息,则说明 Docker 安装成功。

Docker 常用命令

安装 Docker 完成后,可以使用以下常用命令来管理 Docker 容器和镜像:

  • docker images 列出本地镜像。
  • docker ps 列出正在运行的容器。
  • docker ps -a 列出所有容器(包括运行中和已停止的)。
  • docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 运行一个新的容器。
  • docker stop CONTAINER_ID 停止一个正在运行的容器。
  • docker start CONTAINER_ID 启动一个已停止的容器。
  • docker restart CONTAINER_ID 重启一个容器。
  • docker rm CONTAINER_ID 删除一个容器。
  • docker rmi IMAGE_ID 删除一个镜像。
  • docker pull IMAGE_NAME 从 Docker Hub 拉取镜像。
  • docker push IMAGE_NAME 推送镜像到 Docker Hub 或其他镜像仓库。
  • docker exec -it CONTAINER_ID /bin/bash 进入正在运行的容器的 bash 终端。
  • docker logs CONTAINER_ID 查看容器的日志。
  • docker-compose up -d 使用 Docker Compose 启动容器(需要在项目目录下有 docker-compose.yml 文件)。
  • docker-compose down 使用 Docker Compose 停止并删除容器。

服务器安装Docker常见问题解答 (FAQ)

1. 安装 Docker 时提示权限不足怎么办?

在执行 Docker 命令时,如果提示权限不足,通常是因为当前用户不是 root 用户或者没有加入 docker 用户组。解决方法:

  • 使用 sudo 命令: 在 Docker 命令前加上 sudo,以 root 权限执行。例如:sudo docker run hello-world
  • 将用户添加到 docker 用户组: 将当前用户添加到 docker 用户组,这样用户就可以在不使用 sudo 的情况下运行 Docker 命令。
    sudo usermod -aG docker $USER
    newgrp docker

    执行完以上命令后,需要重新登录或者执行 newgrp docker 命令使更改生效。

2. Docker 服务启动失败怎么办?

如果 Docker 服务启动失败,可以使用以下命令查看 Docker 服务的状态和日志,排查错误原因:

sudo systemctl status docker
sudo journalctl -u docker

常见的启动失败原因包括:

  • 端口冲突: Docker 默认使用的端口可能与其他服务冲突,需要修改 Docker 的配置或者停止冲突的服务。
  • 内核版本过低: Docker 需要较新的内核版本支持,如果内核版本过低,可能导致启动失败,需要升级内核。
  • 依赖包缺失或版本不兼容: 检查 Docker 的依赖包是否安装完整,版本是否兼容。
  • 配置文件错误: 检查 Docker 的配置文件是否正确,例如 `/etc/docker/daemon.json`。

根据错误日志,逐一排查并解决问题。

3. 如何卸载 Docker?

卸载 Docker 的步骤与安装步骤相反,需要先停止 Docker 服务,然后卸载 Docker 软件包,最后删除 Docker 相关的数据目录。

CentOS:

sudo systemctl stop docker
sudo yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin.x86_64
sudo rm -rf /var/lib/docker
sudo rm -rf /var/containerd

Ubuntu/Debian:

sudo systemctl stop docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo rm -rf /var/lib/docker
sudo rm -rf /var/containerd

卸载完成后,还需要检查是否还有残留的 Docker 配置文件和目录,并手动删除。

4. 如何配置 Docker 镜像加速器?

由于 Docker Hub 官方镜像仓库位于国外,国内用户访问速度可能较慢。为了提高镜像拉取速度,可以配置 Docker 镜像加速器。常用的镜像加速器包括阿里云加速器、网易云加速器、DaoCloud 加速器等。

以阿里云加速器为例,配置步骤如下:

  1. 登录阿里云容器镜像服务控制台,获取你的专属加速器地址。
  2. 配置 Docker daemon: 修改 Docker daemon 的配置文件 `/etc/docker/daemon.json`(如果文件不存在则创建)。
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["你的阿里云加速器地址"]
    }
    EOF

    将 "你的阿里云加速器地址" 替换为你自己的加速器地址。

  3. 重启 Docker 服务: 使配置生效。
    sudo systemctl restart docker

配置完成后,再次拉取 Docker 镜像时,速度将会明显提升。

总结

本文详细介绍了在服务器上安装 Docker 的步骤,并解答了安装过程中可能遇到的一些常见问题。掌握 Docker 的安装和基本使用,是服务器管理和应用部署的重要技能。希望本文能够帮助你顺利在服务器上安装 Docker,并开始享受 Docker 带来的便利。

服务器安装docker

By admin

发表回复