容器——详解Docker Compose

Docker Compose

简介

Compose是用于定义和运行多容器Docker应用程序的工具。
通过Compose,您可以使用YAML文件来配置应用程序的服务。
然后,使用一个命令,就可以从配置中创建并启动所有服务。
Compose可在所有环境中工作:生产,登台,开发,测试以及CI工作流。

一、安装

Docker Compose依靠Docker Engine进行任何有意义的工作,因此请确保根据您的设置在本地或远程安装Docker Engine。

1.运行以下命令以下载Docker Compose的当前稳定版本

[root@vcc-server ~]# curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.将可执行权限应用于二进制文件

[root@vcc-server ~]# chmod +x /usr/local/bin/docker-compose

3.检查

[root@vcc-server ~]# docker-compose -v
docker-compose version 1.27.4, build 40524192

二、基本命令

在这里插入图片描述

官方文档:
https://docs.docker.com/engine/reference/commandline/compose_build/

三、文件参数

注意:撰写文件是一个YAML文件定义服务,网络和卷。撰写文件的默认路径是:./docker-compose.yml

build

在构建时间应用的配置选项;build可以指定为包含生成上下文路径的字符串:
version: "3.9"
services:
webapp:
build: ./dir
或者,作为一个对象,在上下文下指定的路径,并可选地Dockerfile和args:
version: "3.9"
services:
webapp:
build:
context: ./dir
dockerfile: Dockerfile-alternate
args:
buildno: 1

官方文档链接:https://docs.docker.com/compose/compose-file/compose-file-v3/

四、使用

1.设定一个程序

[root@vcc-server ~]# mkdir composetest
[root@vcc-server ~]# cd composetest
[root@vcc-server ~]# git clone https://github.com/blackmed/docker-compose-example.git
[root@vcc-server ~]# mv docker-compose-example/* composetest/
备注:项目内容
[root@localhost compose]# cat app.py
import time
import redis
from flask import Flask
app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)
def get_hit_count():
retries = 5
while True:
try:
return cache.incr('hits')
except redis.exceptions.ConnectionError as exc:
if retries == 0:
raise exc
retries -= 1
time.sleep(0.5)
@app.route('/')
def hello():
count = get_hit_count()
return 'Hello World! I have been seen {} times.\n'.format(count)
[root@localhost compose]# cat requirements.txt
flask
redis

2.创建Dockerfile文件

[root@vcc-server composetest]# cat Dockerfile
FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
EXPOSE 5000
COPY . .
CMD ["flask", "run"]
注意:
从Python 3.7映像开始构建映像。
将工作目录设置为/code。
设置flask命令使用的环境变量。
安装gcc和其他依赖项
复制requirements.txt并安装Python依赖项。
向图像添加元数据以描述容器正在侦听端口5000
将.项目中的当前目录复制到.映像中的工作目录。
将容器的默认命令设置为flask run。

3.创建定义服务

[root@vcc-server composetest]# cat docker-compose.yaml
version: "3.9"
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
注意:
1.该Compose文件定义了两个服务:web和redis。
2.该web服务使用从Dockerfile当前目录中构建的映像。然后,它将容器和主机绑定到暴露的端口5000。此示例服务使用Flask Web服务器的默认端口5000。

4.运行

[root@vcc-server composetest]# docker-compose up

END

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值