我不了解docker-compose的语法:“ volumes”和“ services”

时间:2019-01-22 16:59:51

标签: docker docker-compose dockerfile

我不了解docker-compose-file的语法。 首先

version: '3'
services:
  bla:
    command: /bin/bash    
    stdin_open: true
    #tty: true
    container_name: docker-gulp-template
    #restart: always
    build: .
    ports:
      - '80:3000'
    volumes:
      - ".:/usr/src/html/bla-source"

volumes:
  volumes-xyz:   

如果我用

执行它
docker-compose up

它确实创建了一个名称为

的容器
docker-gulp-template_bla

但是,这对我来说听起来不合逻辑。不应以这种方式调用容器:

bla_docker-gulp-template ?

为什么这样解决?你们有一个例子吗?

还有一点:

    volumes:
      - ".:/usr/src/html/bla-source"

volumes:
  volumes-xyz: 

为什么我需要第二个volumes命令,而docker如何知道第一个volume路径属于其他卷名?

预先感谢

1 个答案:

答案 0 :(得分:1)

您不需要音量部分。

卷可以是在顶级volumes部分下创建的命名卷,例如

volumes:
  volumes-xyz: 

并安装在具有以下功能的服务下

 volumes:
      - "volumes-xyz:/usr/src/html/bla-source"

命名卷由docker管理(在Linux上为/var/lib/docker/volumes/)。

音量也可以由

匿名
 volumes:
      - "/usr/src/html/bla-source"
另一方面,

- ".:/usr/src/html/bla-source"创建一个“绑定安装”。它与卷非常相似,但是您可以选择其路径以在容器和主机之间创建双向映射。