搬瓦工 VPS 如何安装 Docker 并配置容器开机自启

文章导读
搬瓦工 VPS 安装 Docker 需通过 Linux 包管理器或官方脚本完成,配置开机自启依赖 systemd 服务启用及容器重启策略。适用所有主流 Linux 发行版,风险在于存储驱动兼容性及防火墙规则变更。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

搬瓦工 VPS 安装 Docker 需通过 Linux 包管理器或官方脚本完成,配置开机自启依赖 systemd 服务启用及容器重启策略。适用所有主流 Linux 发行版,风险在于存储驱动兼容性及防火墙规则变更。

先说结论:在搬瓦工 VPS 上部署 Docker 并实现开机自启,本质是启用 Docker 系统服务并为容器指定重启策略。

  • 适合:CentOS 7+、Ubuntu 20.04+、Debian 10+ 等标准 Linux 环境
  • 先准备:确保拥有 root 权限且服务器能访问外网源
  • 验收:重启 VPS 后检查 Docker 服务状态及容器运行状态

命令速用版

以下命令适用于大多数 Linux 发行版,直接复制执行即可完成安装与基础配置。

curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

systemctl enable docker && systemctl start docker

docker run -d `--name` my_container `--restart` always nginx

为什么会这样

Docker 开机自启依赖两个独立机制:Docker 守护进程自启和容器进程自启。Docker 引擎本身是一个系统服务,需通过 systemd 管理开机加载;容器是引擎启动后的子进程,需在创建时明确指定重启策略,否则引擎重启后容器不会自动运行。

分步处理

步骤 1:安装 Docker 引擎
使用官方一键脚本安装,避免使用系统自带源导致版本过旧。执行安装脚本后,检查版本号确认安装成功。

步骤 2:启用系统服务
运行systemctl enable docker将 Docker 服务加入开机启动项。此操作仅保证 Docker 软件开机运行,不保证容器运行。

步骤 3:配置容器重启策略
启动容器时添加`--restart` always参数。若容器已创建,使用docker update `--restart` always <container_id>修改策略。

步骤 4:防火墙与安全组
若容器暴露端口,需在 VPS 控制面板开放对应端口,并在系统防火墙(如 firewalld 或 ufw)放行,否则外部无法访问。

怎么验证是否生效

检查服务状态
执行systemctl is-enabled docker,返回enabled表示服务已设开机自启。

检查容器策略
执行docker inspect `--format` '{{.HostConfig.RestartPolicy.Name}}' <容器名>,返回always表示策略生效。

重启测试
在 VPS 控制面板执行重启操作,等待启动完成后登录 SSH,运行docker ps确认容器处于 Up 状态。

常见坑

权限不足
非 root 用户运行 Docker 命令需加入 docker 用户组,否则报错 permission denied。

存储驱动冲突
部分旧版系统默认存储驱动可能不兼容,若启动失败,检查/etc/docker/daemon.json配置。

端口被占用
容器映射端口若与宿主机已有服务冲突,容器将启动失败,需先排查宿主机端口占用情况。

常见问题

systemctl enable docker 和容器重启策略有什么区别

前者确保 Docker 软件开机运行,后者确保具体业务容器在软件运行后自动拉起,两者缺一不可。

重启后容器数据会丢失吗

容器内临时数据会丢失,持久化数据需通过挂载卷(-v 参数)映射到宿主机目录才能保留。

如何取消容器开机自启

执行docker update `--restart` no <容器名>即可取消该容器的自动重启策略。

参考来源

  • Docker 官方文档:Install Docker Engine
  • Docker 官方文档:Configure restart policies for Docker