在Debian上实现Docker自动化部署,可结合工具或脚本完成,以下是具体方法:
编写脚本实现镜像构建、容器启停等操作,例如:
#!/bin/bash
IMAGE_NAME="your-image:latest"
CONTAINER_NAME="your-container"
# 检查并构建镜像
if ! docker image inspect $IMAGE_NAME &> /dev/null; then
docker build -t $IMAGE_NAME .
fi
# 停止并删除旧容器(若存在)
docker stop $CONTAINER_NAME || true
docker rm $CONTAINER_NAME || true
# 启动新容器
docker run -d --name $CONTAINER_NAME $IMAGE_NAME
echo "Deployment completed."
保存为deploy.sh
,添加执行权限后运行:chmod +x deploy.sh && ./deploy.sh
。
Jenkinsfile
定义流程,如拉取代码、构建镜像、部署到服务器等。.gitlab-ci.yml
:定义构建、测试、部署阶段,例如:stages:
- build
- deploy
build_job:
stage: build
script:
- docker build -t your-image:latest .
deploy_job:
stage: deploy
script:
- ssh user@server "docker pull your-image:latest && docker stop container || true && docker run -d --name container your-image:latest"
- hosts: docker-servers
tasks:
- name: Install Docker
apt:
name: docker-ce
state: present
- name: Deploy Docker container
docker_container:
name: your-container
image: your-image:latest
state: started
ports:
- "80:80"
运行Playbook:ansible-playbook -i inventory deploy.yml
。
通过docker-compose.yml
定义多容器应用,结合脚本实现自动化:
version: '3'
services:
app:
image: your-image:latest
ports:
- "8080:8080"
volumes:
- ./data:/app/data
编写部署脚本:
#!/bin/bash
docker-compose up -d --build
赋予执行权限后运行:chmod +x deploy-compose.sh && ./deploy-compose.sh
。