docker实战流程:

Docker-compose是docker官方的开源项目,负责实现对docker容器的集群的快速编排(通过yaml文件docker-compose.yml管理写好容器之间的调用关系只需一个命令就能实现容器的通识开启或关闭)。

类比spring容器,spring管理的是bean而docker-compose管理的是容器;可以解决大规模集群应用的编排问题(不使用docker-compose要进行不停的docker run而使用了就会一键启动或关闭)。

最新版的docker已经内置了docker-compose:如果是较低版本就要在官网上下载:https://docs.docker.com/compose/install/下载可能需要魔法,注意版本的对应:

curl -SL https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

下载好之后或者docker最新版直接查看:docker compose version

e165cadaae094eed847e04131de01935.png

Docker-compose核心概念:一文件:docker-compose.yml两要素:服务(mysql容器,redis容器,nginx容器,或者是一个库存服务,定单服务),工程(就是多个服务组成的一个完整的服务就是工程)

Compose使用三步骤:

  1. 编写sockerfile定义各个微服务应用并构建出对应的镜像
  2. 使用docker-compose.yml定义一个完整的业务单元安排好整体编排的容器执行顺序和配置服务
  3. 最后执行docker-compose up命令来启动并运行整个应用程序,完成一键部署或停止。

准备好一个简单的springboot项目,并构建成镜像:

64d042fb397342ec89fd194e7f924e90.png

使用docker-compose之前

Before:(启动顺序是固定的)

先启动一下mysql

97c059aeceae49c98ce3ce78d7471bfe.png

再启动redis

9af2870f357c4d6fb7eeedb794485c79.png

在跑起来项目:

688d304506f84f4ba95591e416c7f0d1.png

有多个run命令,且容易在服务器宕机时IP发生变化导致映射出错

0a10f4c43d064e0fa631506612e94981.png

使用docker-compose之后

After:编辑yml文件:

写入:

version: "3"
 
services:
  microService:
    image: zzyy_docker:1.6
    container_name: ms01
    ports:
      - "6001:6001"
    volumes:
      - /app/microService:/data
    networks: 
      - alibaixiu_net 
    depends_on: 
      - redis
      - mysql
 
  redis:
    image: redis:6.0.8
    ports:
      - "6379:6379"
    volumes:
      - /app/redis/redis.conf:/etc/redis/redis.conf
      - /app/redis/data:/data
    networks: 
      - alibaixiu_net
    command: redis-server /etc/redis/redis.conf
 
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: '123456'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_DATABASE: 'db2021'
      MYSQL_USER: 'zzyy'
      MYSQL_PASSWORD: 'zzyy123'
    ports:
       - "3306:3306"
    volumes:
       - /app/mysql/db:/var/lib/mysql
       - /app/mysql/conf/my.cnf:/etc/my.cnf
       - /app/mysql/init:/docker-entrypoint-initdb.d
    networks:
      - alibaixiu_net
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问
 
networks: 
   alibaixiu_net: 

注意位置:

4d1cfcee552044948c513d564c32d1eb.png

69daf7c4287948759847a28eeb830084.png

9f0674b0ce384d109aa1f19c455d8e5e.png


参考命令:

Compose常用命令:

docker-compose -h   #查看帮助

docker-compose up  #启动所有的docker-compose服务

docker-compose up -d  #启动所有的docker-compose服务并在后台运行

docker-compose down  #停止并删除容器,网络,卷,镜像

docker-compose exec yml里面的服务id   #进入容器内部docker-compose exec yml里面的服务id /bin/bash

docker-compose ps  #展示当前docker-compose编排过的运行的所有容器

docker-compose top  #展示当前docker-compose编排过的容器的进程

docker-compose logs yml里面服务的id   #查看容器输出的日志

docker-compose config -q  #检查配置有问题才输出

docker-compose restart/start/stop  #重启/启动/停止服务

参考项目:点击参考项目!

如需要阳老师笔记私信!素材来源于@尚硅谷雷丰阳老师!致敬阳哥教会了我docker!

70c4d38d9baf41e48114de8c26cb6b70.png

相关推荐

  1. docker容器stop流程

    2024-06-10 07:44:02       29 阅读
  2. Docker使用及部署流程

    2024-06-10 07:44:02       19 阅读
  3. Docker实战

    2024-06-10 07:44:02       30 阅读
  4. docker导出conda环境的流程

    2024-06-10 07:44:02       24 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-10 07:44:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-10 07:44:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-10 07:44:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-10 07:44:02       18 阅读

热门阅读

  1. 南京领动云计算-AI工程师-面试经历

    2024-06-10 07:44:02       10 阅读
  2. 软件测试基础知识总结

    2024-06-10 07:44:02       8 阅读
  3. DDoS攻击与防御

    2024-06-10 07:44:02       5 阅读
  4. 定时清理Linux服务器缓存shell脚本

    2024-06-10 07:44:02       11 阅读
  5. Radash 轻量级的函数工具集

    2024-06-10 07:44:02       8 阅读
  6. 哈夫曼树详解

    2024-06-10 07:44:02       6 阅读
  7. UML的用例图

    2024-06-10 07:44:02       8 阅读
  8. SASS控制指令与循环

    2024-06-10 07:44:02       6 阅读
  9. sass详解

    2024-06-10 07:44:02       14 阅读
  10. 设备安装施工的一点总结

    2024-06-10 07:44:02       6 阅读