我尝试使用Docker Compose

安装

执行以下命令来安装 docker-compose 命令。

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` \
-o /usr/local/bin/docker-compose

授予执行权限。

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

我将确认安装已经成功完成。

[ec2-user@ip-172-31-46-239 ~]$ docker-compose --version
docker-compose version 1.16.1, build 6d1ac21

创建 docker-compose.yml 文件

创建一个工作目录,并且接下来的所有步骤都在这个目录中进行。

mkdir compose_test
cd compose_test

创建以下两个容器。

    • Web アプリケーション用の Flask コンテナ

 

    アクセスカウンタ用の Redis コンテナ

我将创建以下文件。

from flask import Flask
from redis import Redis

app = Flask(__name__)
redis = Redis(host='redis', port=6379)

@app.route('/')
def hello():
    count = redis.incr('hits')
    return 'Hello World! I have been seen {} times.\n'.format(count)

if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=True)
flask
redis

下一步,创建Dockerfile。

FROM python
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

接下来,我们将创建一个docker-compose.yml文件。

    • web サービスは Dockerfile で作成するイメージから構築する

 

    • redis サービスは Docker Hub から取得するイメージから構築する

 

    • コンテナの公開用ポート 5000 を、ホストマシンのポート 8080 にポートフォワードする

 

    ホストマシンの compose_test ディレクトリを コンテナ内の /code ディレクトリにマウントする
version: '3'
services:
  web:
    build: .
    ports:
     - "8080:5000"
    volumes:
     - .:/code
  redis:
    image: "redis:alpine"

执行以下命令来启动容器(如果要在后台执行,请加上-d选项)。

docker-compose up

访问应用程序

打开另一个终端并访问。

[ec2-user@ip-172-31-46-239 compose_test]$ curl http://localhost:8080
Hello World! I have been seen 1 times.

如果想要编辑 app.py,由于 compose_test 目录和 /code 目录是同步的,所以只需在本地编辑 app.py,无需再次执行 docker-compose up 命令,更改将自动反映在应用程序中。

看看下面的内容

广告
将在 10 秒后关闭
bannerAds