最快的方法:用 Docker 镜像创建服务器
如果新建服务器,在镜像列表中选择 Docker 最快。以 Ubuntu 24.04 LTS 上已装好 Docker Engine 和 Docker Compose 的状态启动,登录后即可执行 docker compose up。应用介绍和推荐规格见 Docker VPS 页面。
想给已在用的服务器加上 Docker,或想使用 Debian、AlmaLinux 等其他操作系统,请按下面的步骤自行安装。所有命令均以 root 登录状态为准。以普通用户登录的话,请在命令前加上 sudo。
安装前需要确认的事项
Docker 可以在任何大小的服务器上运行。对于运行几个容器的个人项目,最小的 12GB 通用套餐就足够了;要同时运行数据库、Web 服务器和缓存,24GB 或更多会更有余地。如果您经常下载和构建镜像,使用磁盘更快的 NVMe VPS 会有明显差异。
如果有操作系统仓库中的旧版 Docker 软件包,请先删除,以免与官方软件包混杂。未安装的软件包会被跳过,直接执行也没关系。
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do apt remove -y $pkg; done在 Ubuntu 24.04 上安装 Docker
第1步. 添加仓库密钥和地址
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list第2步. 安装 Docker Engine 和 Compose
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin安装完成后 Docker 服务会自动启动,服务器重启后也会一起启动。同样的命令在 Ubuntu 22.04 和 26.04 上也能直接使用。仓库地址中的版本名会自动从 /etc/os-release 读取。
在 Debian 13 上安装 Docker
Debian 的步骤与 Ubuntu 相同,只是仓库地址换成 linux/debian。Debian 12 也使用同样的命令。
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin在 AlmaLinux 10 上安装 Docker
AlmaLinux 和 Rocky Linux 使用 Docker 的 RHEL 仓库。为避免与默认自带的 Podman 冲突,请先清理再安装。AlmaLinux 9 和 Rocky Linux 9、10 也是同样的命令。
dnf remove -y podman buildah runc
dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable --now docker首次安装时询问是否接受仓库签名密钥,按 y 即可。RHEL 系安装后服务不会自动启动,用最后一行 systemctl enable --now docker 立即启动,并设为开机自启。
确认安装与第一个容器
用下面的命令运行一次测试容器。出现以 Hello from Docker 开头的说明,就表示引擎、镜像拉取和容器运行都正常。加上了 --rm,运行结束后容器会立即清理。
docker run --rm hello-world
docker compose version想让普通用户也能使用 Docker,请把该用户加入 docker 组并重新登录。docker 组拥有与 root 相同的权限,请只加入可信的用户。
usermod -aG docker 用户名用 Docker Compose 部署服务
Compose 是把容器配置写进一个 YAML 文件、一行命令启动的方法。迁移或新建服务器时,只要有同样的文件就能重建相同的环境。例如,启动一个 Nginx 网站服务器的文件是这样的。
mkdir -p /opt/web && cd /opt/web
cat > compose.yaml <<'EOF'
services:
web:
image: nginx:stable
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
EOF
docker compose up -d在浏览器中打开 http://YOUR_SERVER_IP 会出现 Nginx 页面。把 index.html 放进 html 文件夹,就会显示该文件。常用命令有下面四个就够了。
docker compose ps:显示当前运行的容器和端口。docker compose logs -f:实时跟踪日志。按 Ctrl+C 退出。docker compose pull && docker compose up -d:拉取新镜像,把容器更新为新版本。docker compose down:停止并清理容器。卷中的数据原样保留。
写上 restart: unless-stopped,服务器重启时容器也会自动重新启动。只有手动停止的容器会保持停止状态。
防火墙与端口公开设置
Docker 会把通过 ports: 公开的端口直接写入防火墙规则(iptables)开放。因此,即使 ufw 中没有放行的端口,只要写进 ports:,外部就能访问。无需对外暴露的数据库或管理界面,像下面这样只绑定到 127.0.0.1,就只能在服务器内部访问。
ports:
- "127.0.0.1:5432:5432"网站服务只公开80和443端口,其余服务在同一 Compose 网络内用服务名互相调用,干净利落。整台服务器的基础防火墙,请按照基础防火墙指南只开放 SSH、HTTP、HTTPS。
日志与磁盘管理
容器日志如果不另行设置会持续累积。在 /etc/docker/daemon.json 中像下面这样指定 local 日志驱动,日志会被压缩,并只保留设定的大小。保存后执行 systemctl restart docker,从新建的容器开始生效。
{
"log-driver": "local"
}不用的镜像和已停止的容器也会占用磁盘。用 docker system df 查看用量,用 docker image prune -a 清理当前未使用的镜像。数据增多后,也可以给服务器挂载 NVMe 块磁盘作为 Docker 数据目录。
守护数据与下一步
容器可以随时删除重建,但卷中的数据无法重建。数据库定期保留转储文件,整台服务器再用自动备份或快照一起守护,就很安心。方法见备份与快照指南。
用 Docker 部署 WordPress 的 Compose 文件在 WordPress 安装指南中。想在界面中部署多个应用并自动配上 HTTPS 证书,可以用 Coolify 或 Dokploy 镜像创建服务器。适合专门运行容器的规格整理在容器 VPS 中。
