Docker-compose学习笔记2

126 阅读2分钟

引言

  • 本文仅作为搭建InternGPT测试项目所用到的docker-compose的一个学习总结,由于个人也是第一次使用,所以本文仅供参考,酌情使用。
  • 本文只简单介绍Docker-compose文件内容以及各个参数的作用。

docker-compose文件内容解析(并非上图的解析,仅供参考)

  • 注:Compose文件的默认文件名就是叫docker- compose.yml

  • services就是表示该docker-compose服务有哪些,此处是只有igpt一个服务容器。

  • 其中build:.就是根据同级的Dockerfile文件构建容器

    • build可以指定包含构建上下文的路径,即build: 路径
    • 也可以作为一个具有上下文路径和指定Dockerfile文件以及args参数值的对象(下图就会根据指定的Dockerfile 文件构建镜像,args就是构建镜像的参数,环境变量只能在构建过程中访问)
  • 下图为Dockerfile文件中设置好环境变量

YAML布尔值(true,false,yes,no,on,off)必须用引号括起来,以便解析器将它们解释为字符串。

  • image,container_name就是代表该容器依赖的镜像名(也可以是一个镜像拉取地址)和容器的名称(Docker容器名称必须是唯一的,如果指定了自定义名称,则无法将服务扩展到多个容器)。
  • port部分就是将容器的7860端口映射到主机上的7862端口
    • 尽量采用字符串来写端口信息,因为yaml会解释数字格式的为60进制
  • volumes其实就是介绍容器章节那个-v参数,其中左边是宿主机的目录,:是映射容器中的目录。
  • command,覆盖容器启动后默认执行的命令
    • 可以是命令:command: bundle exec thin -p 3000
    • 也可以是类似于dockerfile的列表:command: ["bundle", "exec", "thin", "-p", "3000"]
  • expose暴露端口但不映射到宿主机,只被连接的服务访问,仅可以指定内部端口为参数
  • restartno是默认的重启策略,在任何情况下都不会重启容器。 指定为always时,容器总是重新启动。 如果退出代码指示出现故障错误,则on-failure将重新启动容器。
  • 待续。。