Docker进阶学习:docker-compose的体验

安装好docker-compose后,我们要体验一下了解基础的操作和命令。

搞一个官方demo,python应用。 计数器。redis

我先来一个官方文档地址,基本很多都是按照文档来的,建议尽量去官方文档来产看最新的,我这个可能也只是主要内容搬运了当前官方文档的,以官方为准。
docker compose官网:compose started

步骤1
创建文件夹以及路径

 mkdir composetest
 cd composetest

创建文件(文件内容主要是弄一个计时器,通过time包和redis来)
创建文件 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)

再创建一个文件requirements.txt

步骤2
创建一个Dockerfile文件

# syntax=docker/dockerfile:1
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"]

step3
定义服务在一个compose文件
创建一个docker-compose.yml文件

version: "3.7"
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"

这个文件镜像既可以自己去bulid也可以去拉取现成的镜像

step4
bulid并运行你的compose

docker-compose up

我这里出了点小问题,报错

Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.

看了一个github上的回复,他改成3.7就可以了,我这边改了也是可以的,可能是我这个版本暂时不支持这么新的,问题可能是python的问题。

如果下载慢的话,我觉得配置一下docker下载的国内镜像可能会有帮助。

如何验证是否成功了呢这个demo
你可以在网页地址栏上输入:

你的服务器IP:5000
这个5000是文件设置好的,你可以在上面的文件找到位置修改,当然要记得打开对应的防火墙

效果如图:
在这里插入图片描述
大概的意思demo启动了两个服务,一个web一个redis,你刷新一边这个网页就加一,计数器是由redis来提供的功能,来证明compose它可以编排多个镜像。

总结一下流程:

1创建网络
2执行Docker-compose.yaml
3启动服务

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值