开发者社区> 问答> 正文

使用Docker Compose需要做什么准备工作呢?

已解决

使用Docker Compose需要做什么准备工作呢?

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

    1、先来 创建test目录,输入:

    $ mkdir composetest
    $ cd composetest
    

    在test里创建一个名为 app.py 的文件,输入如下:

    导入时间
    
    从烧瓶导入重新
    导入 Flask
    
    应用程序 = Flask(__name__)
    缓存 = redis。Redis(host='redis', port=6379)
    
    
    def get_hit_count():
    retries = 5
    而 True:
    try:
    return cache.incr('hits')
    除了 redis。异常。连接错误作为 exc:
    如果重试 == 0:
    提高 exc
    重试次数 -= 1
    次。sleep(0.5)
    
    
    @app.route('/')
    def hello():
    count = get_hit_count()
    返回 'Hello World!我见过{}次。\n'。格式(计数)
    

    在此示例中,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"]
    

    Dockerfile 内容解释:

    FROM python:3.7-alpine: 从 Python 3.7 映像开始构建镜像。
    WORKDIR /code: 将工作目录设置为 /code。

    ENV FLASK_APP app.py       
    ENV FLASK_RUN_HOST 0.0.0.0    
    

    设置 flask 命令使用的环境变量。

    RUN apk add --no-cache gcc musl-dev linux-headers: 安装 gcc,以便诸如 MarkupSafe 和 SQLAlchemy 之类的 Python 包可以编译加速。

    COPY requirements.txt requirements.txt
    RUN pip install -r requirements.txt
    

    复制要求.txt 并安装 Python 依赖项。

    复制 . .: 将 .项目中的当前目录复制到 .镜像中的工作目录。
    CMD ["flask", "run"]: 容器提供默认的执行命令为:flask run。
    3、创建 docker-compose.yml
    在测试目录中创建一个名为 docker-compose.yml 的文件,然后粘贴以下内容:

    # yaml 配置
    版本: '3'
    服务:
    web:
    build: .
    端口:
    - "5000:5000"
    redis:
    图像: "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 21:55:57
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

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