docker学习 --Compose 容器编排,常用命令等.集成spring。mysql。redis

一切皆容器 处处云原生

有什么用

写好容器之间的编排调用关系 ,一个命令直接使用,相当于spring中的application.xml
例如你可以编排先启动elasticsearch再启动kabbinn
还可以一键启动,一键关闭 。
和dockerFile 的区别 ,dockerFile 针对单个容器 .

安装

官网安装

#查看版本 
docker compose version

在这里插入图片描述
可以编排先启动顺序 mysql-> redis-> springboot

docker-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 ps展示当前docker-compose编排过的运行的所有容器
-docker-compose top展示当前docer-compose编排过的容器进程
-docker-compose logs yml {服务id}查看容器输出的日志
-docker-compose config检查配置
-docker-compose config -q检查配置 有问题才输出
-docker-compose restart/start/stop重启/启动/停止服务

创建一个微服务项目并且上传容器并且运行

FROM java:8
MAINTAINER rabbitcunk

#相当于在容器内生成一个文件夹 ,这个文件夹在主机上有对应的目录(一般后边有一串乱码 保证一个容器一个/tmp 唯一性) ,你用docker inspect找到然后
#就可以同步进行更改
VOLUME /tmp

#解压 并且重命名jar文件
ADD dockerdemo-0.0.1-SNAPSHOT.jar  a.jar

#相当于在linux 执行 java -jar a.jar 
#touch命令的作用是修改这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
RUN bash -c 'touch /a.jar'
ENTRYPOINT ["java","-jar","a.jar"]
EXPOSE 6001


查看如何再dock中构建springboot镜像

docker 微服务跑起来

docker run -d -p 6001:6001 839806e52f90

引入docker compose

刚刚启动一个服务需要
1.启动mysql,redis (MySQL redis 两容器只能靠地址ping通 不能靠 服务名ping)
2.在springboard项目写死 mysql的地址 和redis 的地址
dockers compose 可以将他们一次性全部管理起来

1.修改springboot yml 文件

在这里插入图片描述

docker compose文件

在这里插入图片描述

services:
  microService:
  # 启动容器名称
    image: cunk_docker 1.2
  # 相当于 -name   
    container_name: ms01
    ports:
      - "6001:6001"
  #相当于 -v
    volumes:
      - /bf/usecmps/microService:/data
  # 在哪个网络里面 ,在一组网络里面的容器可以使用容器名称互相调用 
    networks:
      - lzy_net
 # 他依赖哪几个容器 
    depends_on:
      - redis
      - mysql

  redis:
    image: redis:6.2.6
    ports:
      - "6379:6379"
    volumes:
      - /bf/usecmps/redis/redis.conf:/etc/redis/redis.conf
      - /bf/usecmps/redis/data:/data
    networks:
      - lzy_net
    command: redis-server /etc/redis/redis.conf

  mysql:
    image: mysql:8.0.29
    environment:
      MYSQL_ROOT_PASSWORD: '109922'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_DATABASE: 'demo01'
      MYSQL_USER: 'admin'
      MYSQL_PASSWORD: '109922'
    ports:
      - "3306:3306"
    volumes:
      - /bf/usecmps/mysql/db:/var/lib/mysql
      - /bf/usecmps/mysql/conf/my.cnf:/etc/my.cnf
      - /bf/usecmps/mysql/init:/docker-entrypoint-initdb.d
    networks:
      - lzy_net
    command: --default-authentication-plugin=mysql_native_password

networks:
  lzy_net:

运行: docker compose up -d

停止: docker compose stop

3.容器编排文件自动生成的网络

在这里插入图片描述
自动生成的docker镜像
在这里插入图片描述
:如果有运行失败的直接

docker logs --tail=500 [服务名称或容器id]
查看容器日志

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值