Docker 部署
本教程介绍如何在 GoMami VPS 上安装和配置 Docker,快速部署容器化应用。
前置条件
- 已部署的 VPS 实例(推荐 Ubuntu 24.04 LTS)
- 已通过 SSH 连接 到服务器
- 至少 1 GB 内存
安装 Docker
Ubuntu / Debian
# 更新软件包
apt update
# 安装依赖
apt install -y ca-certificates curl gnupg
# 添加 Docker 官方 GPG 密钥
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
# 添加 Docker 仓库
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" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 验证安装
docker --version
docker compose version
CentOS / AlmaLinux
# 安装依赖
dnf install -y yum-utils
# 添加 Docker 仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装 Docker
dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 启动并设置开机自启
systemctl start docker
systemctl enable docker
验证安装
# 运行测试容器
docker run hello-world
# 查看 Docker 信息
docker info
配置 Docker 镜像加速
由于网络原因,从 Docker Hub 拉取镜像可能较慢。可以配置镜像加速:
mkdir -p /etc/docker
cat > /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
EOF
# 重启 Docker
systemctl daemon-reload
systemctl restart docker
提示
GoMami 的亚太节点到国际网络延迟较低,直连 Docker Hub 的速度通常也不错。如果拉取速度正常,可以跳过加速配置。
常用 Docker 命令
# 拉取镜像
docker pull nginx:latest
# 运行容器
docker run -d --name my-nginx -p 80:80 nginx
# 查看运行中的容器
docker ps
# 查看容器日志
docker logs my-nginx
# 进入容器
docker exec -it my-nginx /bin/bash
# 停止容器
docker stop my-nginx
# 删除容器
docker rm my-nginx
# 查看镜像列表
docker images
Docker Compose 示例
使用 Docker Compose 部署多容器应用。以下是一个 Nginx + MySQL 的示例:
# docker-compose.yml
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
restart: unless-stopped
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: your_secure_password
MYSQL_DATABASE: myapp
volumes:
- mysql_data:/var/lib/mysql
restart: unless-stopped
volumes:
mysql_data:
# 启动所有服务
docker compose up -d
# 查看服务状态
docker compose ps
# 查看日志
docker compose logs -f
# 停止所有服务
docker compose down
资源限制
为容器设置资源限制,避免单个容器占用过多资源:
# 限制内存和 CPU
docker run -d \
--name my-app \
--memory="512m" \
--cpus="1.0" \
my-app-image
警告
VPS 的内存和 CPU 是有限的,运行多个容器时注意合理分配资源,留出足够的系统开销。
下一步
- 部署 Web 服务器 — 使用 Nginx 部署网站
- 服务器安全加固 — 加固服务器安全配置