实战:用docker-compose容器化springboot项目

文章目录

    • 前言
    • 技术积累
      • docker-compose定义
      • docker-compose文件参数
      • docker-compose命令
    • 实战演示
      • 1、创建挂载路径
      • 2、编写docker-compose.yml
      • 3、启动并管理容器
    • 写在最后

前言

前面我们学习和实战了用dockerfile构建镜像,通过镜像可以任意在docker环境容器化部署项目。但是作为WEB领域的开发者,大多都是微服务架构,一个项目会有很多的子项目和中间件,一个个的容器化部署会非常的麻烦。那么,此时我们可以用docker-compose批量构建镜像和容器化,简化我们的运维。

技术积累

docker-compose定义

docker-compose 望文生义就是docker组件,可以构建镜像和管理容器。开发人员可以用它批量构建镜像和启动容器。

docker-compose文件参数

常用参数:
version 指定compose的文件版本,必写
services 定义服务,必写

以下是services参数:

参数 含义
build 配置构建时,Compose 会利用它自动构建镜像,该值可以是一个路径,也可以是一个对象
image 镜像名称或镜像ID。如果本地没有指定镜像,则会去docker hub上拉取
restart: always 容器总是重新启动
container_name 容器名
volumes 挂载共享目录
command 构建时需要执行的命令
ports 对外暴露的端口
environment 添加环境变量
depends_on 依赖其他服务,其他服务容器化后才进行
networks 设置网络,不配置会创建默认网络,所有服务都会加入这个网络

docker-compose命令

参数 含义
docker-compose -h 查看帮助
docker-compose build 构建镜像
docker-compose build -d 后台构建镜像
docker-compose up 创建并运行所有容器
docker-compose up -d 创建并后台运行所有容器
docker-compose -f docker-compose.yml up -d 指定模板
docker-compose down 停止并删除容器、网络、卷、镜像
docker-compose pull 拉取依赖镜像
dokcer-compose config 检查配置
dokcer-compose config -q 检查配置,有问题才有输出
docker-compose restart 重启服务
docker-compose start 启动服务
docker-compose stop 停止服务
docker-compose ps 列出项目中所有的容器
docker-compose logs 查看容器中日志信息
docker-compose up --force-recreate -d 修改compose后强制重新创建容器

实战演示

在实际的生产中容器化部署往往是多个镜像进行容器化,比如kafka集群、rabbitmq集群、zk集群,一般不建议多种不相关的镜像放在一个docker-compose中。对于数据库一般不建议容器化,微服务集群建议容器化。

由于在实际生产环境服务镜像一般都是由dockerfile直接产生,一般不会使用docker-compose进行build。如果需要用docker-compose 构建镜像可以直接使用services下的build参数,并提供dockerfile路径即可。

本文直接使用docker-compose启动管理多个容器
目标镜像:demo_demo、demo_test-demo

1、创建挂载路径

mkdir -p /home/test/demo/logs

2、编写docker-compose.yml

编写docker-compose,对两个镜像进行容器化配置,并指定日志挂载目录和时区。

vim docker-compose.yml
version: '3.3'  #docker-compose版本
services: #服务列表
  demo: #服务名
    container_name: demo #容器名称
    image: demo_demo  #镜像
    ports: #端口映射
      - 8888:9999
    volumes: #目录挂载
      - /home/test/demo/logs:/opt/logs
      - /etc/localtime:/etc/localtime
    restart: always #自动重启
    environment: #环境变量
      TZ: Asia/Shanghai    #时区
  test-demo:
    container_name: test-demo
    image: demo_test-demo
    ports:
      - 7777:9999
    volumes:
      - /home/test/demo/logs:/opt/logs
      - /etc/localtime:/etc/localtime
    restart: always
    environment:
      TZ: Asia/Shanghai

3、启动并管理容器

》》》后台启动容器

docker-compose up -d

》》》查看容器

docker ps | grep demo

在这里插入图片描述

》》》查看端口映射

netstat -nplt | grep 8888

实战:用docker-compose容器化springboot项目_第1张图片

netstat -nplt | grep 7777

实战:用docker-compose容器化springboot项目_第2张图片

》》》查看容器日志

docker-compose logs  --tail 300 -f demo

实战:用docker-compose容器化springboot项目_第3张图片

》》》修改docker-compose强制重启容器

docker-compose up --force-recreate -d

实战:用docker-compose容器化springboot项目_第4张图片

写在最后

用docker-compose管理容器化springboot项目较为简单,可以直接批量构建镜像和容器化管理,大大大简化我们的运维。在实际的生产环境中,对于数据库一般不建议容器化,微服务集群建议容器化。

你可能感兴趣的:(docker,docker,spring,boot,容器)