Ubuntu Docker如何进行自动化部署
导读:Ubuntu Docker自动化部署常见方法 1. 使用Shell脚本实现基础自动化部署 Shell脚本是最基础的自动化方式,通过编写脚本自动完成Docker镜像构建、容器启停、旧资源清理等操作。 步骤: 编写部署脚本(如deploy.s...
Ubuntu Docker自动化部署常见方法
1. 使用Shell脚本实现基础自动化部署
Shell脚本是最基础的自动化方式,通过编写脚本自动完成Docker镜像构建、容器启停、旧资源清理等操作。
步骤:
- 编写部署脚本(如
deploy.sh
),包含镜像存在性检查、镜像构建、容器启停逻辑。示例如下:#!/bin/bash IMAGE_NAME="your-image-name" CONTAINER_NAME="your-container-name" if ! docker image inspect $IMAGE_NAME & > /dev/null; then echo "Building Docker image..." docker build -t $IMAGE_NAME . fi if ! docker ps -a | grep $CONTAINER_NAME & > /dev/null; then echo "Starting Docker container..." docker run -d --name $CONTAINER_NAME $IMAGE_NAME else echo "Docker container is already running." fi echo "Deployment completed."
- 赋予执行权限:
chmod +x deploy.sh
。 - 运行脚本:
./deploy.sh
。
优势:简单易用,适合单机或简单场景的自动化部署。
2. 使用Docker Compose编排多容器应用
Docker Compose通过docker-compose.yml
文件定义多容器服务的配置(如网络、卷、端口映射),实现一键启动、停止、重启多容器应用。
步骤:
- 安装Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
- 编写
docker-compose.yml
文件:定义服务、镜像、端口等配置。示例如下:version: '3' services: web: image: nginx:latest ports: - "80:80" volumes: - ./app:/usr/share/nginx/html
- 启动服务:
docker-compose up -d
(后台运行);停止服务:docker-compose down
。
优势:简化多容器应用的部署和管理,适合微服务或前后端分离的场景。
3. 使用Ansible实现远程自动化部署
Ansible是基于SSH的自动化运维工具,通过Playbook定义部署流程,实现远程Ubuntu服务器上的Docker安装、配置及应用部署。
步骤:
- 安装Ansible(控制节点):
sudo apt install ansible -y
。 - 配置清单文件(
inventory
):定义目标服务器(托管节点)。示例如下:[docker] ubuntu ansible_ssh_host=192.168.1.100
- 编写Playbook(
deploy.yml
):定义Docker安装、服务启动等任务。示例如下:--- - name: Deploy Docker on Ubuntu hosts: docker become: yes tasks: - name: Install Docker apt: name: docker.io state: present - name: Start Docker service systemd: name: docker state: started enabled: yes
- 执行Playbook:
ansible-playbook -i inventory deploy.yml
。
优势:支持批量远程操作,无需在目标服务器安装Ansible,适合大规模服务器集群的自动化管理。
4. 结合CI/CD工具实现全流程自动化
CI/CD工具(如Jenkins、GitLab CI/CD、GitHub Actions)可实现代码提交、构建、测试、部署的全流程自动化,适用于DevOps场景。
以GitHub Actions为例:
- 创建
.github/workflows/deploy.yml
文件:定义部署流程。示例如下:name: Docker Deployment on: push: branches: [ main ] jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${ { secrets.DOCKER_HUB_USERNAME } } password: ${ { secrets.DOCKER_HUB_TOKEN } } - name: Build and push image run: | docker build -t your-dockerhub-username/your-image-name:${ { github.sha } } . docker push your-dockerhub-username/your-image-name:${ { github.sha } } - name: Deploy to Ubuntu server uses: appleboy/ssh-action@master with: host: ${ { secrets.SERVER_IP } } username: ${ { secrets.SERVER_USER } } key: ${ { secrets.SSH_KEY } } script: | docker pull your-dockerhub-username/your-image-name:${ { github.sha } } docker stop your-container-name || true docker rm your-container-name || true docker run -d --name your-container-name -p 80:80 your-dockerhub-username/your-image-name:${ { github.sha } }
优势:实现代码变更自动触发部署,减少人工干预,提高交付效率。
5. 使用第三方自动化部署工具(如Spug、Jpom)
第三方工具提供了可视化界面和更多高级功能(如项目管理、日志监控、定时任务),适合中小团队快速搭建自动化部署平台。
- Spug:
- 安装:
sudo docker run -d --restart=always --name=spug -p 80:80 -v /spug:/data registry.aliyuncs.com/openspug/spug
。 - 初始化:
sudo docker exec spug init_spug admin spug.dev
,访问http://IP:80
登录。 - 使用:通过Web界面创建项目、配置部署流程(如代码拉取、Docker构建、容器启停)。
- 安装:
- Jpom:
- 安装:
docker pull jpom/jpom
。 - 启动:
docker run -p 2122:2122 --name jpom-server jpom/jpom
。 - 使用:通过Web界面管理项目、配置自动化部署任务。
优势:降低自动化部署的学习成本,提供更丰富的管理功能。
- 安装:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Docker如何进行自动化部署
本文地址: https://pptw.com/jishu/715711.html