zoukankan      html  css  js  c++  java
  • docker-compose.yml配置小结

    个人学习笔记,谢绝转载!!!

    原文:https://www.cnblogs.com/wshenjin/p/13293881.html


    docker-compose.yml是一个定义服务、网络和卷的YAML文件,默认路径是当前目录下的docker-compose.yml,可以使用.yml或.yaml作为文件扩展名。

    docker-compose.yml标准模板文件应该包含version、services、networks 三大部分,最关键的是services和networks两个部分。

    docker-compose.yml

    version: '3'
    
    services:
      rdb_01:                               #服务名称,一个服务对应一个容器
                                           
        image: rdb-v3.2.7                   #image标签指定服务镜像名称或镜像ID,如果本地不存在,Compose将会尝试拉取镜像。
                                           
        build:                              #除了基于指定的镜像,还可以基于Dockerfile。build标签指定Dockerfile所在文件夹的路径,Compose将会利用Dockerfile自动构建镜像并启动容器。
                                            #如果同时指定image和build两个标签,那么Compose会构建镜像并且把镜像命名为image值指定的名字。
          context: ./redis3.2.7/            #设定上下文根目录,也可以是链接到git仓库的url。当提供的值是相对路径时,被解析为相对于撰写文件的路径,此目录也是发送到Docker守护进程的context。
          dockerfile: Dockerfile            #指定dockerfile,这个dockerfile就位于centext标签指定的路径下。
                                            #context和dockerfile可以合并到build标签,例如:build: ./redis3.2.7/
                                           
        container_name: myrdb               #自定义容器名称,默认容器名称格式是:${项目名称}_${服务名称}_${序号}
                                           
        commond: CND                        #覆盖容器启动后默认执行的命令
        entrypoint: /path/entrypoi.sh       #覆盖Dockerfile中的定义的entrypoint
    
        depends_on:                         #容器依赖
          - web_01                          #例如:web_01服务启动完,再启动redb_01
                                           
        ports:                              #映射端口
          - "6379:6379"                    
                                           
        extra_hosts                         #在容器/etc/hosts文件中添加hosts
          - "host1:1.1.1.1"                
          - "host2:2.2.2.2"                
                                           
        volumes:                            #挂载卷
          - /data/redis/                    #只是指定一个路径,会自动在创建一个数据卷
          - /volumes/rdb_01/:/data/redis/
          - /volumes/pubvolume/:/tmp/:ro    #只读
    
        volumes_from:                       #从另一个服务或容器挂载其数据卷
          - web_01                          #服务名称
            - nginx-v1.14                   #容器名称
                                           
        dns:8.8.8.8                        #自定义dns
        dns:                               #可以按列表的语法
          - 8.8.8.8                        
          - 9.9.9.9                        
    
        expose:                             #暴露端口,但不映射到宿主机,只允许能被连接的服务访问。仅可以指定内部端口为参数
          - "1234"                         
                                           
        networks:                           #指定网络,默认每个services都会建立一个独立的网络
          - "rdb_network"                   #自定义个 rdb_network,需要在networks字段配置
          rdb_network:                      #也可以这样,并指定IP地址,语法捉摸不透
            ipv4_address: 172.16.1.10
    
        environment:                        #设置环境变量
          - RDB_ENV=TESTRDB                
    
    networks:                              
      rdb_network:                          #自定义一个网络,rdb_network
        driver: bridge                      #网络模式
        ipam:                              
          driver: default
          config:                          
          - subnet: 172.16.1.0/24           #自定义IP段
    
  • 相关阅读:
    SmartTimer——一种基于STM32的轻量级时钟调度器
    Python2/3中的urllib库
    Python 解析构建数据大杂烩 -- csv、xml、json、excel
    Python2/3 中执行外部命令(Linux)和程序(exe) -- 子进程模块 subprocess
    Python 中的命令行参数处理 -- argparse、optparse、getopt
    Linux 定时循环执行 python 脚本
    Python2/3的中、英文字符编码与解码输出: UnicodeDecodeError: 'ascii' codec can't decode/encode
    在windows下使用Qt5开发GTK3图形界面应用程序
    qt编译的基于xlib cairo的桌面程序
    debian安装dwm窗口管理器
  • 原文地址:https://www.cnblogs.com/wshenjin/p/13293881.html
Copyright © 2011-2022 走看看