搬瓦工安装 Docker 与 Docker Compose 教程

Docker 是当前最流行的容器化平台,可以让你在隔离的环境中快速部署各种应用。本文将介绍如何在搬瓦工 VPS 上安装 Docker 和 Docker Compose,并讲解常用命令和编排示例。安装好 Docker 后,你可以轻松部署 NextcloudBitwardenGitea 等各种应用。

一、系统要求

  • 操作系统:Ubuntu 20.04+、Debian 11+、CentOS 7+(推荐 Ubuntu 22.04)。
  • 内核版本:Linux 内核 3.10 以上(搬瓦工 KVM 方案均满足)。
  • 内存:至少 512MB,建议 1GB 以上。
  • 架构:x86_64(搬瓦工所有方案均为此架构)。

注意:搬瓦工已停售的 OpenVZ 架构方案不支持 Docker,必须使用 KVM 方案。

二、在 Ubuntu/Debian 上安装 Docker

2.1 卸载旧版本

apt remove docker docker-engine docker.io containerd runc 2>/dev/null

2.2 安装依赖

apt update
apt install ca-certificates curl gnupg lsb-release -y

2.3 添加 Docker 官方 GPG 密钥

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg

2.4 添加 Docker 仓库

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null

如果是 Debian 系统,将上面 URL 中的 ubuntu 替换为 debian

2.5 安装 Docker Engine

apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

2.6 验证安装

docker --version
docker compose version

三、在 CentOS 上安装 Docker

3.1 卸载旧版本

yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 2>/dev/null

3.2 安装依赖并添加仓库

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3.3 安装 Docker Engine

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

3.4 启动 Docker

systemctl start docker
systemctl enable docker

四、Docker 基础配置

4.1 设置开机自启

systemctl enable docker

4.2 配置镜像加速(可选)

如果拉取镜像速度较慢,可以配置镜像加速器。创建或编辑 Docker 配置文件:

mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2"
}
EOF
systemctl daemon-reload
systemctl restart docker

4.3 允许非 root 用户使用 Docker(可选)

usermod -aG docker your-username

需要重新登录 SSH 才能生效。

五、Docker 常用命令

镜像管理

# 搜索镜像
docker search nginx

# 拉取镜像
docker pull nginx:latest

# 查看本地镜像
docker images

# 删除镜像
docker rmi nginx:latest

容器管理

# 运行容器(后台模式)
docker run -d --name my-nginx -p 80:80 nginx

# 查看运行中的容器
docker ps

# 查看所有容器(包括已停止的)
docker ps -a

# 停止容器
docker stop my-nginx

# 启动已停止的容器
docker start my-nginx

# 删除容器
docker rm my-nginx

# 查看容器日志
docker logs my-nginx

# 进入容器内部
docker exec -it my-nginx /bin/bash

系统维护

# 查看 Docker 系统信息
docker system df

# 清理无用的镜像、容器和网络
docker system prune -a

六、Docker Compose 使用

Docker Compose 用于定义和运行多容器应用。现在的 Docker 安装包已经内置了 Compose 插件,通过 docker compose(注意是空格不是横杠)即可使用。

6.1 Compose 文件示例

以下是一个 WordPress + MySQL 的 Compose 示例,创建 docker-compose.yml 文件:

version: '3.8'

services:
  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: wppassword
    volumes:
      - db_data:/var/lib/mysql

  wordpress:
    image: wordpress:latest
    restart: always
    depends_on:
      - db
    ports:
      - "80:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: wppassword
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wp_data:/var/www/html

volumes:
  db_data:
  wp_data:

6.2 Compose 常用命令

# 启动所有服务(后台运行)
docker compose up -d

# 查看服务状态
docker compose ps

# 查看日志
docker compose logs -f

# 停止所有服务
docker compose down

# 停止并删除数据卷
docker compose down -v

# 重新构建并启动
docker compose up -d --build

七、数据持久化

Docker 容器本身是无状态的,容器删除后数据会丢失。有两种方式实现数据持久化:

命名卷(Named Volumes)

docker run -d -v my-data:/var/lib/mysql mysql:8.0

数据存储在 Docker 管理的目录中(通常是 /var/lib/docker/volumes/),由 Docker 自动管理。

绑定挂载(Bind Mounts)

docker run -d -v /home/data/mysql:/var/lib/mysql mysql:8.0

数据存储在主机上的指定目录,方便直接访问和备份。

八、容器网络

Docker 提供多种网络模式:

  • bridge:默认模式,容器通过虚拟网桥通信。
  • host:容器直接使用主机网络,性能最好但端口会冲突。
  • none:禁用网络。

在 Compose 中,同一个 docker-compose.yml 的服务默认在同一网络中,可以通过服务名互相访问。

九、常见问题

Docker 无法启动

查看 Docker 服务状态和日志:

systemctl status docker
journalctl -u docker.service

常见原因是内核版本过低或存储驱动不兼容。

磁盘空间不足

Docker 镜像和容器数据会占用大量磁盘空间。定期清理:

docker system prune -a --volumes

此命令会删除所有未使用的镜像、停止的容器和无主数据卷,请确认不需要后再执行。

容器内无法访问网络

检查 DNS 配置,可以在 /etc/docker/daemon.json 中添加:

{
  "dns": ["8.8.8.8", "8.8.4.4"]
}

修改后重启 Docker 服务。

总结

Docker 是在搬瓦工 VPS 上部署应用的利器,一次配置即可在任何环境中复现。安装好 Docker 后,你可以继续参考以下教程部署各种应用:Nextcloud 私有云盘Dify AI 平台Bitwarden 密码管理器Jellyfin 媒体服务器 等。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。