debian

Debian如何使用Docker进行自动化部署

小樊
40
2025-08-18 03:05:33
栏目: 智能运维

在Debian上使用Docker进行自动化部署,可结合工具实现,核心步骤如下:

一、安装Docker

  1. 更新系统并安装依赖:
    sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
    
  2. 添加Docker官方GPG密钥和仓库:
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
  3. 安装Docker并启动服务:
    sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
    sudo systemctl start docker && sudo systemctl enable docker
    

二、编写自动化部署脚本

  1. 基础部署脚本deploy.sh):
    #!/bin/bash
    IMAGE_NAME="your-image:latest"
    CONTAINER_NAME="your-container"
    # 停止并删除旧容器(可选)
    docker stop $CONTAINER_NAME 2>/dev/null || true
    docker rm $CONTAINER_NAME 2>/dev/null || true
    # 构建并运行新容器
    docker build -t $IMAGE_NAME . && docker run -d --name $CONTAINER_NAME -p 80:80 $IMAGE_NAME
    
  2. 使用Docker Compose(适用于多容器场景):
    编写docker-compose.yml定义服务,通过脚本执行:
    #!/bin/bash
    docker-compose up -d --build
    

三、集成CI/CD工具(以Jenkins为例)

  1. 安装Jenkins
    wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
    sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
    sudo apt update && sudo apt install jenkins
    sudo systemctl start jenkins && sudo systemctl enable jenkins
    
  2. 配置Jenkins Pipeline
    在Jenkins中创建Jenkinsfile,定义构建、测试、部署流程,例如:
    pipeline {
        agent any
        stages {
            stage('Build') {
                steps {
                    sh 'docker build -t my-app:latest .'
                }
            }
            stage('Deploy') {
                steps {
                    sh 'docker stop my-app-container || true'
                    sh 'docker run -d --name my-app-container -p 8080:80 my-app:latest'
                }
            }
        }
    }
    

四、触发自动化部署

五、验证与监控

说明:根据实际需求选择工具,简单场景可直接用Shell脚本,复杂项目建议结合CI/CD工具实现全流程自动化。

0
看了该问题的人还看了