这是我参与「第五届青训营 」伴学笔记创作活动的第 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,简便了开发,当然,如何批量化脚本进行,本文还没详细说明