首页 > 其他分享 >docker-compose.yml 参数详解

docker-compose.yml 参数详解

时间:2023-03-24 13:13:53浏览次数:44  
标签:容器 compose 文件 指定 nginx 构建 docker Dockerfile yml

示例文件:docker-compose.yml

version: '3.8'  # Docker Compose 文件版本号

services:  # 定义应用程序中的服务,每个服务对应一个容器
  web:  # 定义一个名为 web 的服务
    image: nginx:latest  # 指定该服务使用的 Docker 镜像名称
    build: .  # 指定 Dockerfile 的路径,Docker Compose 将自动构建该服务的 Docker 镜像
    container_name: nginx  # 指定该容器的名称
    ports:  # 指定容器和宿主机之间的端口映射关系,格式为宿主机端口:容器端口
      - "8080:80"  # 将宿主机的 8080 端口映射到容器的 80 端口
    volumes:  # 指定容器和宿主机之间的数据卷映射关系,格式为宿主机路径:容器路径
      - ./nginx.conf:/etc/nginx/nginx.conf:ro  # 将宿主机上的 nginx.conf 文件映射到容器的 /etc/nginx/nginx.conf 文件,并设置为只读模式
    environment:  # 指定容器的环境变量
      - NGINX_PORT=80  # 设置一个名为 NGINX_PORT 的环境变量,值为 80
    command: nginx -g 'daemon off;'  # 指定容器启动后要执行的命令,即运行 nginx,并设置为后台模式
    restart: always  # 指定容器退出后的重启策略,可选值为 no、always、on-failure、unless-stopped
    depends_on:  # 指定容器之间的依赖关系,使得一个容器启动前必须先启动其依赖的容器
      - db  # 表示该容器依赖于名为 db 的服务
    networks:  # 指定容器所属的网络
      - backend  # 将该容器加入名为 backend 的网络中

  db:  # 定义一个名为 db 的服务
    image: mysql:5.7  # 指定该服务使用的 Docker 镜像名称
    restart: on-failure:5  # 指定容器退出后的重启策略,on-failure:5 表示在容器退出代码非零时重启容器,最多重试 5 次
    environment:  # 指定容器的环境变量
      - MYSQL_ROOT_PASSWORD=root  # 设置一个名为 MYSQL_ROOT_PASSWORD 的环境变量,值为 root
      - MYSQL_DATABASE=mydb  # 设置一个名为 MYSQL_DATABASE 的环境变量,值为 mydb
      - MYSQL_USER=user  # 设置一个名为 MYSQL_USER 的环境变量,值为 user
      - MYSQL_PASSWORD=password  # 设置一个名为 MYSQL_PASSWORD 的环境
build

build 还可继续设置参数,包括:

  • context:指定构建上下文路径,默认为当前目录。
  • dockerfile:指定 Dockerfile 文件路径,默认为 ./Dockerfile。
  • args:设置构建时的构建参数,格式为一个 key-value 的映射,可以在 Dockerfile 文件中使用 ${key} 来引用该参数。

具体含义如下:
context:构建上下文路径,即指定在哪个目录下寻找 Dockerfile 文件以及构建上下文。如果该路径是相对路径,则相对于 docker-compose.yml 所在目录。构建上下文路径中的所有文件和文件夹都会被发送到 Docker 引擎以供构建使用,因此如果上下文路径中包含大量不必要的文件,则会导致构建时间过长和镜像体积过大。

dockerfile:Dockerfile 文件路径,即指定使用哪个 Dockerfile 文件进行构建。默认为 ./Dockerfile,即当前目录下的 Dockerfile 文件。如果指定了相对路径,则相对于构建上下文路径。如果指定了绝对路径,则会忽略上下文路径。

args:构建参数,即在构建过程中传递给 Dockerfile 文件的变量。可以在 Dockerfile 文件中使用 ${key} 的方式引用该变量。例如,可以使用 args: { APP_ENV: production } 设置一个名为 APP_ENV 值为 production 的构建参数。在 Dockerfile 文件中可以使用 ${APP_ENV} 引用该参数。

除此之外,build 参数还可以包含一些其他的选项,例如:

  • cache_from:从指定的镜像中使用缓存来加速构建。
  • labels:为构建过程添加元数据标签。
  • network:指定构建时使用的网络。
  • shm_size:指定共享内存区的大小。
  • target:指定使用 Dockerfile 文件中的哪个构建阶段进行构建。

标签:容器,compose,文件,指定,nginx,构建,docker,Dockerfile,yml
From: https://www.cnblogs.com/abeelan/p/17251208.html

相关文章

  • #docker安装dvwa 下载pikachu
    #docker安装dvwadockerpullinfoslack/dvwa#查看镜像dockerimages#运行镜像dockerrun-d-p80:80-p3306:3306-eMYSQL_PASS="password"infoslack/dvwa#查看正在运行......
  • dockerfile部署vue+springboot+redis
    后端部署:一、拉取并启动redis镜像1、在服务器/usr/local/etc/redis/文件目录下建立redis.conf配置文件,配置信息如下:bind0.0.0.0protected-modeno2、拉取并启动最......
  • Docker - dockerfile as 关键字
    在Dockerfile中使用AS(或as)关键字可以创建一个多阶段构建(multi-stagebuild)。多阶段构建是一种将应用程序的构建过程分解为多个阶段(stage)的技术,每个阶段使用不同的基础......
  • Ubuntu 通过 docker 部署禅道
    #拉取镜像dockerpulleasysoft/zentao:latest#运行容器(简单配置)dockerrun--namezentao-p8080:80-eMYSQL_ROOT_PASSWORD=88888888-dzentao#运行容器(......
  • AM33X将本机Linux系统打包成docker镜像
    基于现有开发板上运行带有dockerfeature将正在运行系统打包成dockerimage对系统进行压缩   /proc、/sys、/run、/dev这几个目录都是系统启动时自动生成的,虽......
  • java中获取路径 -docker文件路径挂载到磁盘
    继签名章文档后,发现一个问题,服务器获取路径问题又三种:第一种使用httpRequest:StringrealPath=request.getSession().getServletContext().getRealPath("");第二种实......
  • 5、Docker网络
    一、Docker网络是什么virbr0:在centos7的安装过程中如果有选择相关虚拟化的服务安装系统后,启动网卡时会发现有一个以网桥连接的私网地址virbr0网卡(virbr0网卡:它有一个固定......
  • Docker 安装以及配置阿里云镜像加速器指南
    在中国大陆,由于网络限制和Docker官方镜像仓库的访问速度较慢,可能会影响Docker的使用体验。因此,建议中国用户使用阿里云提供的Docker镜像加速器来提高Docker镜像的拉......
  • Docker CLI docker config rm 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Doc......
  • docker容器安装RabbitMQ
    https://blog.csdn.net/qq_45502336/article/details/118699251?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1......