Docker使用docker-compose.yml文件(六)

前言

  前面介绍的都是单个容器部署,对于多容器部署也是一个个部署。这里Docker开发了docker-compose.yml。是一个YAML格式的文件,用于定义和运行多容器的Docker应用程序。它允许你使用单个命令来启动、停止和重启应用程序,以及管理应用程序依赖的服务。

一、配置yml文件

version: '3'  # 版本不同,件格式特性不一样
services:  # 应用程序中需要运行的服务
  web:  # 服务名称
  restart: always #开机重启策略 build: . # 构建当前目录下的Dockerfile文件 ports: # 端口映射
- "5000:5000" environment: # 环境变量 - DEBUG=1 volumes: # 当前目录挂载到容器/app目录 - .:/app networks: # 指定网络 - front-tier depends_on: # web服务依赖于db服务,启动顺序是db->web - db db: # 服务名称 image: postgres # postgres数据库镜像
  restart: always environment: # 这里设置postgres数据库账号密码
- POSTGRES_USER=myuser - POSTGRES_PASSWORD=mypassword volumes: # 挂载db-data到容器data目录下 - db-data:/var/lib/postgresql/data networks: # 指定网络 - back-tier volumes: # 创建卷 db-data: networks: # 创建网络 front-tier: back-tier:

 

二、执行docker-compose.yml文件

  以JavaWeb项目为例,配置dockerfile文件,里面是web项目。再以mysql数据库为例作为依赖项。

# 使用包含Java的官方基础镜像
FROM openjdk:8u131-jdk-alpine

# 设置时区
ENV TZ=Asia/Shanghai

# 设置工作目录
WORKDIR /jar

# 将JAR文件从当前目录复制到容器的/jar目录下
COPY ./web/target/web-0.0.1.jar ./web.jar

# 暴露应用程序运行的端口,假设你的应用监听在8085端口
EXPOSE 8085

# 启动JAR包
ENTRYPOINT ["java", "-jar", "web.jar"]

  配置docker-compose.yml文件

version: '3'
services:
  web:
    build: .
    ports:
      - "8085:8085"
    networks:
      - web-db-tier
    depends_on:
      - db
  db:
    image: mysql:8
    environment:
      - MYSQL_ROOT_PASSWORD=123456
    volumes:
      - db-data:/var/lib/mysql
    networks:
      - web-db-tier

volumes:
  db-data:

networks:
  web-db-tier:

  查看是否创建成功,然后查看network、volume等信息是否符合。

~]# docker compose ls # 查看compose是否成功执行
~]# docker compose ps # 查看两个容器在运行
~]# docker volume ls # 查看卷是否创建
~]# docker network ls # 查看网络是否创建
~]# docker inspect  baby-db-1 # 查看容器信息,是否volume、network是否配置成功

   基本上信息都对上了,后面就是基本操作命令。这里的db是yml配置名,而不是控制台中的baby-db-1名称,若要使用控制台显示的名称,需要使用docker stop等命令。

~]# docker compose down#停止并删除yml包含容器
~]# docker compose start db# 开始服务
~]# docker compose stop db# 停止服务或者 docker stop baby-db-1
~]# docker compose restart db# 重启服务

  若使用docker compose down则会删除yml配置文件内的所有容器,并删除network网络,不过会保留volume卷。

 

  以上就是docker-compose.yml文件的基本使用,介绍了多容器统一管理配置,以及依赖顺序创建启动。

  如果需要更加深入了解特殊配置,可以去官网查看最新版本的配置,这里使用version:3版本,后续官方可能会更新版本,并提供其他新特征。

posted @ 2024-03-07 17:34  Auler  阅读(3008)  评论(0编辑  收藏  举报