第五届青训营后端第五天学习笔记| 青训营笔记

59 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天

一、本堂课重点内容:

  • docker
  • docker-compose
  • 个人小结

咋说呢,因为我们的项目有即将进行收尾工作,同时鉴于我们的项目采用的是微服务架构,而微服务架构中,各个服务是相互解耦的,因此服务启动的环境很混乱,因为这是个小项目,也没必要上k8s体量,因此用docker-compose启动最合适。

本文通过项目来进行案例讲解。

二、docker

docker是当前微服务最合适的应用,相关的百度百科很多,同时如何启动,如何端口映射,就不在这里赘述了。

一般来说docker的使用,一方面是方便运维,另一方面是轻量级启动,不然每次体量都太重了,这与微服务的思想相悖。

docker安装(建议直接装desktop版本):

brew install docker //mac版本,其他版本类比

输入查看是否安装成功 docker version

三、docker-compose

docker-compose,我抄一抄百度百科的定义哈

Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。 Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

因此对于多docker的管理,就是使用docker-compose这个工具来管理。

docker-compose一般安装docker desktop都已经安装了,如果没有就输入下列命令进行安装。

curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-uname -s -uname -m -o /usr/local/bin/docker-compose

安装完同理运行 docker-compose version查看是否安装成功

下面就是讲解docker-compose.yml文件的结构

``

version: "3.1"
services:
  # Nacos
  nacos:
    image: "nacos/nacos-server:v2.1.2-slim"
    restart: always
    ports:
      - "8848:8848"
      - "9848:9848"
      - "9849:9849"
    environment:
      - MODE=standalone
      - JVM_XMS=512m
      - JVM_XMX=512m
      - JVM_XMN=256m

  # RabbitMQ
  rabbitmq:
    image: rabbitmq:management
    ports:
      - "15672:15672"
      - "5672:5672"
    environment:
      - RABBITMQ_DEFAULT_USER=guest
      - RABBITMQ_DEFAULT_PASS=guest

  # Redis
  redis:
    image: redis
    restart: always
    hostname: redis
    container_name: redis
    privileged: true
    ports:
      - "6379:6379"
    environment:
      TZ: Asia/Shanghai
    volumes:
      - ./data:/data
      - ./conf/redis.conf:/etc/redis/redis.conf
      - ./logs:/logs
    command: ["redis-server","/etc/redis/redis.conf"]

version docker-compose版本号,用的时候要制定x.x,不然会报错

services需要启动的docker容易

naocscontainer名称

image需要拉取的镜像,类比docker pull image的image

下边就不一次类推,需要注意的是volumes数据卷,command命令等启动

四、个人小结

使用docker-compose,简便了开发,当然,如何批量化脚本进行,本文还没详细说明

五、引用参考:

1.blog.csdn.net/pushiqiang/…