🐳 在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
此命令将:
- 从Docker Hub下载
hello-world镜像 - 从此镜像创建容器
- 运行容器
- 显示确认消息
检查容器
# 列出正在运行的容器 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的权限。为了更安全,您可以:
- 仅向受信任的用户授予访问权限
- 使用Docker rootless(高级安装)
- 通过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是一个强大的工具,可大大简化应用程序部署。在将应用程序部署到生产环境之前,请花时间了解基本概念。