docker-compose.yml 文件配置说明 version 2

version: '2'
services:
  web:
    image: hello-world
    command: bundle exec thin -p 3000  // 可以覆盖容器启动后默认执行的命令
    container_name: app  // 指定该容器的名称
    depends_on:  // 指定依赖,按照顺序启动
      - db
      - redis
    expose:  // 指定暴露端口
      - "3000"
      - "8000
    volumes:  // 挂载一个目录或文件 [host:container]
      - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
      - ${NGINX_SITES_PATH}:/etc/nginx/sites-available
    volumes_from:  // 从其他容器或者服务挂载数据卷
      - service_name  // server
      - service_name:ro  // 只读
      - container:container_name  // 容器
    extra_hosts:  // 添加主机名的标签,就是往/etc/hosts文件中添加一些记录,启动之后查看容器内部hosts
      - "somehost:162.242.195.82"
      - "otherhost:50.31.209.229"
    ports: // 映射端口的标签。使用HOST:CONTAINER格式或者只是指定容器的端口,宿主机会随机映射端口
      - "3000"
      - "8000:8000"
      - "49100:22"
      - "127.0.0.1:8001:8001"
    environment:  // 这个标签的作用是设置镜像变量,它可以保存变量到镜像里面
      RACK_ENV: development
      SHOW: 'true'
      SESSION_SECRET:
  • 镜像的话,可以通过image:xxx来指定,如果本地没有就远程下载
  • 服务除了指定镜像,还可以是基于一份Dockerfile的,写法如下:
php-fpm:
  context: ./php-fpm
  dockerfile: "Dockerfile-${PHP_VERSION}"
  args:
    BUILD_NO=1  // 指定参数后,就可以在Docker 使用
    PASSWORD=secret
  dockerfile: "Dockerfile-${PHP_VERSION}"

// 简写如下
build: ./php-fpm

注意:YAML 的布尔值(true, false, yes, no, on, off)必须要使用引号引起来(单引号、双引号均可),否则会当成字符串解析。

评论数量: 0

0
点赞
622
浏览
0
评论

贡献 69