Docker-compose

Docker-compose简介

1.Docker-compose是docker官方的开源项目,负责实现对docker容器集群的快速编排,写好多个容器间的调用关系,只有一个命令就能同时启动/关闭这些容器,编写yaml文件,用一条命令进行管理容器,一键部署

2.docker-compose,使用yaml或者yml作为文件扩展名

Docker-compose用来实现Docker容器快速编排

通过 Docker-Compose ,不需要使用shell脚本来启动容器,而使用 YAML 文件来配置应用程序需要的所有服务,然后使用一个命令,根据 YAML 的文件配置创建并启动所有服务。

Docker-compose模板文件简介

Compose允许用户通过一个docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目。

Compose模板文件默认路径是当前目录下的docker-compose.yml,可以使用.yml或.yaml作为文件扩展名。

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

Docker-compose编排结构

工程(project):一个过程包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖               

服务(service):一个服务当中可包含多个容器实例

容器(container)

db427eaef568d1e855984a8325e348fb.png

Docker Compose 的核心就是其配置文件,采用 YAML 格式,默认为 docker-compose.yml 。

YAML模板文件语法

1.默认的模板文件是docker-compose.yml,其中定义的每个服务都必须通过image指令指定镜像,也可以通过build指令(需要Dockerfile)来自动构建。

2.其他大部分都跟docker run中类似,如果使用build指令,在Dockerfile中设置的选项(例如:CMD,EXPOSE,ENV等)将自动被获取,无需在docker-compose.yml中再次被设置

3.yml文件还行后的缩进,不允许使用tab键字符,只能使用空格,而空格的数量也有要求,经过实际测试,发现每一行增加一个空格用于缩进是正常的。

Docker-compose语法说明

image:指定镜像名称或ID,如果镜像不存在,compose将尝试从互联网上拉取这个镜像

9211a4dc0b337670840fe808cc4b5bc8.png

build:指定Dockerfile所在文件夹路径,compose将会利用它自行构建这个镜像,然后使用这个镜像

 build:./dir

command:覆盖容器启动后默认执行的命令

command: bundle exec thin -p 3000

links:链接到其他服务容器,使用服务名称(同时作为别名)或服务别名

03d64d8d8bf82e77a98823ccfc067f30.png

external_links:链接到docker-compose.yaml外部的容器,甚至并非是compose管理的容器,参数与links类似

b551ae96e5aa29429c52b5ee73d7e1c7.png

ports:暴露端口信息,或者仅指定容器的端口(宿主机将会随机分配地址)

ef90b853b36fad3c67c6805e4a1d0088.png

expose:暴露端口,与ports不同的是只可以暴露端口而不能映射到主机,只供外部服务连接使用,仅可以指定内部端口为参数

0b3287c78076e3e158fedef5627547ff.png

volumes:设置挂载卷的路径,可以设置宿主机路径(host:container)或加上访问模式(host:container:ro),ro就是readonly只读

7aa8b6a411af20f84b7c3b3ebcd2a410.png

Volumes_from:挂载另一个服务或容器的所有数据卷

560d339cfe9df6041cac0cfcd91921b1.png

environment:设置环境变量,可以属于数组或字典两种格式

c311e7222bc164d705eedcc0ed949b08.png

Depends_on:依赖服务,优先启动

2e09c485e6a2d370d2e9b6228bc02797.png

deploy:部署相关的配置都在这个节点上

使用yaml需要注意的事项

● 使用缩进表示层级关系,不支持制表符tab键缩进,只能使用空格键缩进;

● 缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级

● 通常开头缩进2个空格;

● 字符后缩进1个空格,如冒号:空格 逗号,空格 横杠-空格文本之间的空格>;

● 用#号注释;

● 如果包含特殊字符用单引号' '引起来;

● 布尔值必须用引号" "括起来;

● 区分大小写

● 字符串可以不用引号标注

Docker-compose常用命令

    docker-compose -h                             查看帮助

    docker-compose build 容器名             构建镜像

    docker-compose up                            启动所有docker-compose服务

    docker-compose up -d                        启动所有docker-compose服务并后台运行

    docker-compose down                        停止并删除容器、网络、卷、镜像

    docker-compose exec yaml里面的服务ID   进入服务内部

    docker-compose ps                             展示当前编排过的运行的所有容器

    docker-compose top                            展示当前编排过的容器进程

    docker-compose logs yaml里面的服务ID    查看容器输出的日志

    docker-compose config                        检查配置

    docker-compose config -q                    检查配置,有问题才输出

    docker-compose rm 容器名                  删除容器

    docker-compose restart                        重启服务

    docker-compose start                           启动服务

    docker-compose stop                           停止服务

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值