本指南介绍如何在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:更新系统
Bash1# 更新软件包列表 2sudo apt update 3 4# 更新已安装的软件包 5sudo apt upgrade -y
步骤2:安装依赖项
Bash1# 安装必要的软件包 2sudo apt install -y \ 3 ca-certificates \ 4 curl \ 5 gnupg \ 6 lsb-release
步骤3:添加Docker的官方GPG密钥
Bash1# 创建密钥目录 2sudo install -m 0755 -d /etc/apt/keyrings 3 4# 下载并添加GPG密钥 5curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 6 7# 设置正确的权限 8sudo chmod a+r /etc/apt/keyrings/docker.gpg
步骤4:配置Docker存储库
Bash# 添加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
Bash1# 更新软件包列表 2sudo apt update 3 4# 安装Docker Engine、containerd和Docker Compose 5sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
步骤6:验证安装
Bash1# 验证Docker是否正确安装 2sudo docker --version 3 4# 验证Docker Compose是否已安装 5sudo docker compose version
🔧 在CentOS/RHEL上安装
步骤1:更新系统
Bash# 更新软件包 sudo yum update -y
步骤2:安装依赖项
Bash# 安装必要的软件包 sudo yum install -y yum-utils
步骤3:添加Docker存储库
Bash# 添加Docker存储库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
步骤4:安装Docker Engine
Bash# 安装Docker Engine、containerd和Docker Compose sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
步骤5:启动Docker
Bash1# 启动Docker服务 2sudo systemctl start docker 3 4# 启用Docker开机自启 5sudo systemctl enable docker
步骤6:验证安装
Bash1# 验证Docker是否正确安装 2sudo docker --version 3 4# 验证Docker Compose是否已安装 5sudo docker compose version
👤 步骤7:配置权限(重要)
默认情况下,Docker需要root权限。要在不使用sudo的情况下运行Docker,请将您的用户添加到docker组:
Bash1# 将您的用户添加到docker组 2sudo usermod -aG docker $USER 3 4# 应用更改(需要注销/重新登录) 5newgrp docker
验证权限
Bash# 不使用sudo测试Docker docker run hello-world
如果此命令无错误运行,则Docker配置正确!
🧪 步骤8:测试Docker
运行测试容器
Bash# 运行Hello World容器 docker run hello-world
此命令将:
- 从Docker Hub下载
hello-world镜像 - 从此镜像创建容器
- 运行容器
- 显示确认消息
检查容器
Bash1# 列出正在运行的容器 2docker ps 3 4# 列出所有容器(包括已停止的) 5docker ps -a 6 7# 列出Docker镜像 8docker images
🐙 步骤9:安装Docker Compose(如果未包含)
如果Docker Compose未与Docker Engine一起安装,请单独安装:
在Ubuntu/Debian上
Bash1# 下载Docker Compose 2sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 3 4# 使其可执行 5sudo chmod +x /usr/local/bin/docker-compose 6 7# 验证安装 8docker-compose --version
在CentOS/RHEL上
Bash1# 下载Docker Compose 2sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 3 4# 使其可执行 5sudo chmod +x /usr/local/bin/docker-compose 6 7# 验证安装 8docker-compose --version
📦 基本Docker命令
镜像管理
Bash1# 下载镜像 2docker pull 镜像名称:标签 3 4# 列出镜像 5docker images 6 7# 删除镜像 8docker rmi 镜像名称 9 10# 清理未使用的镜像 11docker image prune -a
容器管理
Bash1# 创建并启动容器 2docker run 镜像名称 3 4# 在后台创建容器(分离模式) 5docker run -d 镜像名称 6 7# 列出正在运行的容器 8docker ps 9 10# 停止容器 11docker stop 容器ID 12 13# 启动已停止的容器 14docker start 容器ID 15 16# 重启容器 17docker restart 容器ID 18 19# 删除容器 20docker rm 容器ID 21 22# 查看容器日志 23docker logs 容器ID 24 25# 在正在运行的容器中执行命令 26docker exec -it 容器ID /bin/bash
Docker Compose
Bash1# 启动docker-compose.yml中定义的服务 2docker compose up 3 4# 在后台启动 5docker compose up -d 6 7# 停止服务 8docker compose down 9 10# 查看日志 11docker compose logs 12 13# 重建镜像 14docker compose build
🔒 保护Docker
配置Docker守护进程(可选)
创建或修改/etc/docker/daemon.json:
Bashsudo nano /etc/docker/daemon.json
添加以下配置:
JSON1{ 2 "log-driver": "json-file", 3 "log-opts": { 4 "max-size": "10m", 5 "max-file": "3" 6 } 7}
重启Docker:
Bashsudo systemctl restart docker
限制Docker访问
默认情况下,docker组中的用户具有等同于root的权限。为了更安全,您可以:
- 仅向受信任的用户授予访问权限
- 使用Docker rootless(高级安装)
- 通过AppArmor或SELinux配置安全策略
🔄 更新Docker
在Ubuntu/Debian上
Bash1# 更新软件包 2sudo apt update 3 4# 更新Docker 5sudo apt upgrade docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
在CentOS/RHEL上
Bash# 更新Docker sudo yum update docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
🗑️ 卸载Docker
如果您想卸载Docker:
在Ubuntu/Debian上
Bash1# 停止Docker 2sudo systemctl stop docker 3 4# 卸载软件包 5sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras 6 7# 删除镜像、容器和卷 8sudo rm -rf /var/lib/docker 9sudo rm -rf /var/lib/containerd
在CentOS/RHEL上
Bash1# 停止Docker 2sudo systemctl stop docker 3 4# 卸载软件包 5sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras 6 7# 删除镜像、容器和卷 8sudo rm -rf /var/lib/docker 9sudo rm -rf /var/lib/containerd
❓ 常见问题
错误"Cannot connect to the Docker daemon"
解决方案:
Bash1# 检查Docker服务是否已启动 2sudo systemctl status docker 3 4# 如有必要,启动Docker 5sudo systemctl start docker 6 7# 检查您是否在docker组中 8groups
错误"Permission denied"
解决方案:
Bash# 将您的用户添加到docker组 sudo usermod -aG docker $USER # 注销并重新登录
Docker运行缓慢
可能的解决方案:
- 检查磁盘空间:
df -h - 清理未使用的镜像:
docker system prune -a - 检查可用RAM:
free -h
📝 示例:部署简单应用程序
创建docker-compose.yml文件
Bash1# 为您的项目创建目录 2mkdir 我的项目 3cd 我的项目 4 5# 创建docker-compose.yml文件 6nano docker-compose.yml
示例内容:
YAML1version: '3.8' 2 3services: 4 web: 5 image: nginx:latest 6 ports: 7 - "80:80" 8 volumes: 9 - ./html:/usr/share/nginx/html 10 restart: unless-stopped
启动应用程序
Bash1# 启动服务 2docker compose up -d 3 4# 验证容器是否正在运行 5docker ps
📞 需要帮助?
如果您在安装Docker时遇到困难,请联系Infrawire支持。我们的团队随时为您提供帮助。
注意: Docker是一个强大的工具,可大大简化应用程序部署。在将应用程序部署到生产环境之前,请花时间了解基本概念。