如何在你的服务器上安装 Docker

在服务器上部署 Docker 的完整指南

Docker 已经成为现代软件开发和部署流程中不可或缺的一部分。它通过容器化技术,将应用程序及其依赖项打包成一个独立的单元,从而实现在不同环境之间的一致性和可移植性。本文将提供一份详尽的指南,教你如何在服务器上安装 Docker,并涵盖一些最佳实践和常见问题解答。

一、准备工作

在开始安装 Docker 之前,需要进行一些准备工作:

  1. 选择合适的服务器操作系统: Docker 支持多种操作系统,包括 CentOS、Ubuntu、Debian 等。选择一个你熟悉且稳定的操作系统至关重要。本文将以 CentOS 7 和 Ubuntu 20.04 为例进行讲解。

  2. 确保服务器拥有足够的资源: Docker 容器需要一定的 CPU、内存和磁盘空间。建议至少 2GB 内存和 20GB 磁盘空间。

  3. 使用 root 用户或拥有 sudo 权限的用户: 安装 Docker 需要 root 权限。

  4. 更新服务器系统: 在安装任何新软件之前,最好更新服务器的软件包,以确保系统的稳定性和安全性。

  5. CentOS 7: sudo yum update -y

  6. Ubuntu 20.04: sudo apt update && sudo apt upgrade -y

二、安装 Docker 引擎

以下步骤将指导你如何安装 Docker 社区版 (CE) 引擎:

1. 使用 Docker 仓库安装 (推荐): 这种方法可以确保你安装的是最新版本的 Docker。

  • CentOS 7:

    bash
    sudo yum install -y yum-utils
    sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install -y docker-ce docker-ce-cli containerd.io

  • Ubuntu 20.04:

    bash
    sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    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
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io

  • 手动下载安装包 (不推荐): 这种方法比较繁琐,并且可能安装的不是最新版本。建议使用仓库安装。

三、启动 Docker 服务

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

  • CentOS 7:

bash
sudo systemctl start docker
sudo systemctl enable docker

  • Ubuntu 20.04:

bash
sudo systemctl start docker
sudo systemctl enable docker

四、验证 Docker 安装

运行 sudo docker run hello-world 命令来验证 Docker 是否安装成功。如果成功,Docker 将下载一个测试镜像并运行一个容器,输出 "Hello from Docker!" 的信息。

五、配置 Docker (可选)

  1. 将非 root 用户添加到 docker 组: 为了避免每次运行 Docker 命令都需要使用 sudo,可以将你的用户添加到 docker 组:

bash
sudo usermod -aG docker $USER
newgrp docker

注销并重新登录后生效。

  1. 配置 Docker 镜像加速器: 国内用户可以配置镜像加速器来提高下载速度,例如阿里云、DaoCloud 等。具体配置方法请参考相应加速器提供商的文档。 一般在 /etc/docker/daemon.json 文件中配置(如果没有则创建该文件)。例如:

json
{
"registry-mirrors": ["https://<your_registry_mirror>.mirror.aliyuncs.com"]
}

配置完成后,重启 Docker 服务:

  • CentOS 7: sudo systemctl restart docker
  • Ubuntu 20.04: sudo systemctl restart docker

六、常用 Docker 命令

以下是一些常用的 Docker 命令:

  • docker run <image_name>: 运行一个容器
  • docker ps: 列出正在运行的容器
  • docker ps -a: 列出所有容器,包括已停止的容器
  • docker images: 列出本地镜像
  • docker pull <image_name>: 下载镜像
  • docker stop <container_id>: 停止容器
  • docker rm <container_id>: 删除容器
  • docker rmi <image_id>: 删除镜像
  • docker build -t <image_name> .: 构建镜像
  • docker logs <container_id>: 查看容器日志
  • docker exec -it <container_id> bash: 进入容器的终端

七、Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它使用 YAML 文件来配置应用程序的服务,然后可以使用单个命令来创建和启动所有服务。

八、Docker Swarm

Docker Swarm 是 Docker 原生的集群管理和编排工具。它可以将多个 Docker 主机转换为一个虚拟的 Docker 主机,方便用户管理和部署分布式应用程序。

九、进阶主题

  • Docker 网络: 了解 Docker 网络模型,包括 bridge、host、overlay 等。
  • Docker 存储: 了解 Docker 存储驱动,例如 overlay2、aufs 等。
  • Docker 安全: 学习如何保护 Docker 容器和主机安全。

十、持续学习与探索

Docker 技术日新月异,不断学习和探索新的功能和最佳实践至关重要。 通过阅读官方文档、参与社区论坛和实践项目,可以不断提升你的 Docker 技能。 希望这篇指南能够帮助你在服务器上成功安装和使用 Docker,开启你的容器化之旅!

THE END