Debian 上实现 Docker 自动化运维的落地方案
一 基础环境与自启动
sudo systemctl status dockersudo systemctl enable dockersudo reboot 后再次 systemctl status docker二 编排与配置即代码
version: "3.8"
services:
web:
image: yourorg/web:latest
restart: unless-stopped
ports:
- "80:80"
db:
image: postgres:15
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_password
volumes:
- pgdata:/var/lib/postgresql/data
restart: unless-stopped
volumes:
pgdata:
secrets:
db_password:
file: ./secrets/db_password.txt
三 CI/CD 自动构建与部署
.github/workflows/deploy-docker.ymlname: Deploy Docker
on:
push:
branches: [ main ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
- uses: docker/build-push-action@v5
with:
context: .
push: true
tags: yourorg/web:${{ github.sha }}
- name: Deploy via SSH
run: |
ssh -o StrictHostKeyChecking=no ${{ secrets.PRODUCTION_SERVER }} \
'cd /opt/myapp && docker compose pull && docker compose up -d --remove-orphans'
四 配置管理与批量运维
docker compose up -d、健康检查与回滚。五 监控 日志 自愈与合规