开发者社区> 问答> 正文

docker中compose使用的步骤是什么啊?

已解决

docker中compose使用的步骤是什么啊?

展开
收起
格格的阿里云 2022-04-03 10:32:21 550 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    1、先来新建test目录:

    $ mkdir composetest
    $ cd composetest
    

    然后在它中新建一个名为 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)
    

    在此示例中,redis 是应用程序网络上的 redis 容器的主机名,该主机使用的端口为 6379。

    在 composetest 目录中创建另一个名为 requirements.txt 的文件,内容如下:

    flask
    redis
    

    2、创建 Dockerfile 文件
    在 composetest 目录中,创建一个名为 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
    COPY . .
    CMD ["flask", "run"]
    

    3、创建 docker-compose.yml
    在测试目录中创建一个名为 docker-compose.yml 的文件,然后粘贴以下内容:

    
    # yaml 配置
    version: '3'
    services:
     web:
       build: .
       ports:
        - "5000:5000"
     redis:
       image: "redis:alpine"
    

    该 Compose 文件定义了两个服务:web 和 redis。

    web:该 web 服务使用从 Dockerfile 当前目录中构建的镜像。然后,它将容器和主机绑定到暴露的端口 5000。此示例服务使用 Flask Web 服务器的默认端口 5000 。
    redis:该 redis 服务使用 Docker Hub 的公共 Redis 映像。
    4、使用 Compose 命令构建和运行您的应用
    在测试目录中,执行以下命令来启动应用程序:

    docker-compose up
    

    如果你想在后台执行该服务可以加上 -d 参数:

    docker-compose up -d 
    
    
    2022-04-03 11:59:12
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
应用 Docker 进行持续交付:用技术改变交付路程 立即下载
从Docker到容器服务 立即下载
Docker@Alibaba——超大规模Docker化的实战经验 立即下载