docker compose 使用体验

docker compose

将多个服务分别创建不同的容器,然后一起运行

步骤

  1. 整理dockerfile文件/服务镜像配置
    1. 既可以将一个服务使用dockerfile构建,也可以直接在compose.yaml中直接构建
  2. 编写compose.yaml文件
  3. 执行docker compose up -d 如果其他命名文件,则要指定-f /path/to/docker-compose.yaml

指令语法

详细见官网

  • version 指docker compose文件的版本,不同版本支持的语法不同,暂时使用3.8
  • services 下面罗列各种服务(mysql,redis,微服务项目的单个服务等)
  • 服务名称,如果是自己通过dockerfile创建的,最终生成的镜像名称为:dockerfile-<服务名称>,否则镜像名称就是image基于的镜像

服务下面的指令语法:

  • image 基础镜像
  • container_name 创建的容器名
  • environment 环境变量
  • volume 数据卷
  • networks 网络(不同服务之间必须位于同一网络下才能互相访问)
  • labels 标签
  • build 基于的dockerfile
    • context 放置dockerfile文件的路径,是一个目录
    • dockerfile 指定具体的文件名
  • networks 位于哪一个网络下面
  • ports 端口映射
  • expose 端口暴露

模板文件

yaml
复制代码
version: '3.8' services: mysql: image: mysql:8.0.19 container_name: mysql environment: - MYSQL_ROOT_PASSWORD=123456 volumes: - "/usr/dcoker-mysql/log:/var/log/mysql" - "/usr/docker-mysql/data:/var/lib/mysql" - "/usr/docker-mysql/conf:/etc/mysql/conf.d" networks: - mynetwork webyannqng: container_name: yannqingdemo1 labels: - com.yannqing.description="彦青学习docker compose" - com.yannqing.owner="yannqing <yannqing.com>" build: context: . dockerfile: ./Dockerfile.dockerfile ports: - "6081:6081" expose: - 6081 networks: - mynetwork networks: mynetwork: external: true
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP