🐳 在Linux VPS上安装Docker

在Linux VPS上安装Docker和Docker Compose的完整指南。Docker允许您在隔离的容器中创建、部署和运行应用程序。

🐳 在Linux VPS上安装Docker

本指南介绍如何在Linux VPS上安装Docker和Docker Compose。Docker是一个容器化平台,允许您在隔离的容器中创建、部署和运行应用程序,从而简化应用程序的部署和管理。

📋 先决条件

  • 具有root或sudo访问权限的Linux VPS
  • Ubuntu 20.04+或Debian 11+(或CentOS 7+/RHEL 7+)
  • 至少1 GB RAM(建议2 GB)
  • 稳定的互联网连接

💡 基础设施推荐

Docker需要快速磁盘来进行编译和密集的I/O操作。我们推荐使用我们的NVMe VPS以获得使用Docker时的最佳性能。NVMe驱动器提供比传统SSD快10倍的速度,可显著加速Docker镜像构建和容器启动时间。

⚠️ 安装前重要提示

  • 检查您的系统:Docker需要64位系统
  • 备份您的数据:安装可能会修改某些系统配置
  • 安装时间:安装通常需要5到10分钟

🔧 在Ubuntu/Debian上安装

步骤1:更新系统

# 更新软件包列表 sudo apt update # 更新已安装的软件包 sudo apt upgrade -y

步骤2:安装依赖项

# 安装必要的软件包 sudo apt install -y \ ca-certificates \ curl \ gnupg \ lsb-release

步骤3:添加Docker的官方GPG密钥

# 创建密钥目录 sudo install -m 0755 -d /etc/apt/keyrings # 下载并添加GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 设置正确的权限 sudo chmod a+r /etc/apt/keyrings/docker.gpg

步骤4:配置Docker存储库

# 添加Docker存储库 echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

步骤5:安装Docker Engine

# 更新软件包列表 sudo apt update # 安装Docker Engine、containerd和Docker Compose sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

步骤6:验证安装

# 验证Docker是否正确安装 sudo docker --version # 验证Docker Compose是否已安装 sudo docker compose version

🔧 在CentOS/RHEL上安装

步骤1:更新系统

# 更新软件包 sudo yum update -y

步骤2:安装依赖项

# 安装必要的软件包 sudo yum install -y yum-utils

步骤3:添加Docker存储库

# 添加Docker存储库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

步骤4:安装Docker Engine

# 安装Docker Engine、containerd和Docker Compose sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

步骤5:启动Docker

# 启动Docker服务 sudo systemctl start docker # 启用Docker开机自启 sudo systemctl enable docker

步骤6:验证安装

# 验证Docker是否正确安装 sudo docker --version # 验证Docker Compose是否已安装 sudo docker compose version

👤 步骤7:配置权限(重要)

默认情况下,Docker需要root权限。要在不使用sudo的情况下运行Docker,请将您的用户添加到docker组:

# 将您的用户添加到docker组 sudo usermod -aG docker $USER # 应用更改(需要注销/重新登录) newgrp docker

验证权限

# 不使用sudo测试Docker docker run hello-world

如果此命令无错误运行,则Docker配置正确!

🧪 步骤8:测试Docker

运行测试容器

# 运行Hello World容器 docker run hello-world

此命令将:

  1. 从Docker Hub下载hello-world镜像
  2. 从此镜像创建容器
  3. 运行容器
  4. 显示确认消息

检查容器

# 列出正在运行的容器 docker ps # 列出所有容器(包括已停止的) docker ps -a # 列出Docker镜像 docker images

🐙 步骤9:安装Docker Compose(如果未包含)

如果Docker Compose未与Docker Engine一起安装,请单独安装:

在Ubuntu/Debian上

# 下载Docker Compose 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 # 验证安装 docker-compose --version

在CentOS/RHEL上

# 下载Docker Compose 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 # 验证安装 docker-compose --version

📦 基本Docker命令

镜像管理

# 下载镜像 docker pull 镜像名称:标签 # 列出镜像 docker images # 删除镜像 docker rmi 镜像名称 # 清理未使用的镜像 docker image prune -a

容器管理

# 创建并启动容器 docker run 镜像名称 # 在后台创建容器(分离模式) docker run -d 镜像名称 # 列出正在运行的容器 docker ps # 停止容器 docker stop 容器ID # 启动已停止的容器 docker start 容器ID # 重启容器 docker restart 容器ID # 删除容器 docker rm 容器ID # 查看容器日志 docker logs 容器ID # 在正在运行的容器中执行命令 docker exec -it 容器ID /bin/bash

Docker Compose

# 启动docker-compose.yml中定义的服务 docker compose up # 在后台启动 docker compose up -d # 停止服务 docker compose down # 查看日志 docker compose logs # 重建镜像 docker compose build

🔒 保护Docker

配置Docker守护进程(可选)

创建或修改/etc/docker/daemon.json

sudo nano /etc/docker/daemon.json

添加以下配置:

{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } }

重启Docker:

sudo systemctl restart docker

限制Docker访问

默认情况下,docker组中的用户具有等同于root的权限。为了更安全,您可以:

  1. 仅向受信任的用户授予访问权限
  2. 使用Docker rootless(高级安装)
  3. 通过AppArmor或SELinux配置安全策略

🔄 更新Docker

在Ubuntu/Debian上

# 更新软件包 sudo apt update # 更新Docker sudo apt upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

在CentOS/RHEL上

# 更新Docker sudo yum update docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

🗑️ 卸载Docker

如果您想卸载Docker:

在Ubuntu/Debian上

# 停止Docker sudo systemctl stop docker # 卸载软件包 sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras # 删除镜像、容器和卷 sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd

在CentOS/RHEL上

# 停止Docker sudo systemctl stop docker # 卸载软件包 sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras # 删除镜像、容器和卷 sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd

❓ 常见问题

错误"Cannot connect to the Docker daemon"

解决方案:

# 检查Docker服务是否已启动 sudo systemctl status docker # 如有必要,启动Docker sudo systemctl start docker # 检查您是否在docker组中 groups

错误"Permission denied"

解决方案:

# 将您的用户添加到docker组 sudo usermod -aG docker $USER # 注销并重新登录

Docker运行缓慢

可能的解决方案:

  • 检查磁盘空间:df -h
  • 清理未使用的镜像:docker system prune -a
  • 检查可用RAM:free -h

📝 示例:部署简单应用程序

创建docker-compose.yml文件

# 为您的项目创建目录 mkdir 我的项目 cd 我的项目 # 创建docker-compose.yml文件 nano docker-compose.yml

示例内容:

version: '3.8' services: web: image: nginx:latest ports: - "80:80" volumes: - ./html:/usr/share/nginx/html restart: unless-stopped

启动应用程序

# 启动服务 docker compose up -d # 验证容器是否正在运行 docker ps

📞 需要帮助?

如果您在安装Docker时遇到困难,请联系Infrawire支持。我们的团队随时为您提供帮助。


注意: Docker是一个强大的工具,可大大简化应用程序部署。在将应用程序部署到生产环境之前,请花时间了解基本概念。