Docker Compose 部署应用

Docker Compose 部署应用

一、简介

Docker Compose 的前身是Fig。Fig是一个由Orchard公司开发的强有力的工具。Fig是基于Docker的Python工具,允许用户基于一个YAML文件定义多容器应用,从而可以使用fig命令行工具进行应用的部署。Fig可以对应用的全生命周期进行管理。

2014年,Docker公司收购了Orchard公司,将Fig更名为Docker Compose。

部署和管理多个服务是比较困难的,而这就是Docker Compose需要解决的问题

Docker Compose 并不是通过脚本和各种冗长的docker命令来将应用组件组织起来,而是通过一个声明式的配置文件描述整个应用,从而使用一条命令完成部署。

二、安装Docker Compose

在linux系统安装时分为两步。首先使用curl命令下载二进制文件,然后使用chmod命令将其置为可运行。

Docker Compose 在linux中使用,同样需要先安装Docker引擎。

下面是下载Docker Compose到/usr/local/bin目录下,版本是1.29.2

[root@localhost bin]# sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   664  100   664    0     0    587      0  0:00:01  0:00:01 --:--:--   587
100 12.1M  100 12.1M    0     0   168k      0  0:01:13  0:01:13 --:--:--  120k

下载docker-compose二进制文件之后,使用如下命令使其可执行。

chmod +x /usr/local/bin/docker-compose

检查安装情况以及版本

[root@localhost bin]# docker-compose --version
docker-compose version 1.29.2, build 5becea4c

现在就可以在Linux中使用Docker Compose了。

还有一个通过pip安装的Docker Compose的Python包

pip install docker-compose

不做演示

三、Compose 文件

Docker Compose 使用YAML文件来定义多服务的应用。YAML是JSON的一个子集,因此也可以使用JSON。

Docker Compose 默认使用文件名 docker-compose.yml, 当然用户也可以使用-f参数指定具体的文件。

version: "3.9"  
services:
  web:
    build: .
    command: python3 app.py
    ports:
      - target: 5000
        published: 5000
    networks:
      - counter-net
    volumes:
      - type: volume
      	source: counter-vol
      	target: /code

  redis:
    image: "redis:alpine"
    networks:
      counter-net:
      
networks:
  counter-net: 
  
volumes:
  counter-vol:

关键字段解释:

  • version 位于文件第一行,必须存在,它定义了Compose文件格式(主要是API)的版本。

  • services 用于定义不同的应用服务。Docker Compose 会将每个服务部署在各自的容器中。

  • networks 用于指引Docker创建新的网络。默认情况下,Docker Compose 会创建bridge网络。这是一种单主机网络,只能实现同一主机上容器的连接。

  • volumes 用于指引Docker来创建新的卷。

下面是services服务中的指令解释:

  • build: . 指定Docker基于当前目录(.)下Dockerfile中定义的指令来构建一个新的镜像。
  • command: python app.py 指定Docker在容器中执行名为app.py的Python脚本作为主程序。
  • ports: 指定Docker将容器内(-target)的5000端口映射到主机(published)的5000端口。
  • networks: 使得Docker可以将服务连接到指定的网络上。
  • volumes:指定Docker将counter-vol 卷(source:)挂载到容器内的 /code (target:)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值