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

  • 21
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值