Docker

パッケージのバージョンのためかビルドでエラーが出るため、P.76のDockerfileを以下のように修正した。

FROM python:3.7.2

RUN pip install uWSGI Flask

WORKDIR /app
COPY app /app

CMD ["uwsgi", "--http", "0.0.0.0:9090", "--wsgi-file", "/app/identidock.py", "--callable", "app", "--stats", "0.0.0.0:9191"]

個人メモ

P.30〜の実験。

1. myredisというコンテナ名でredisイメージをデーモンとして起動する。

$ docker run --name myredis -d redis

2. redisクライアントを使用するため、別のredisイメージを起動する。
このとき、1.で起動したコンテナにhogeというホスト名でアクセスできるようにするため、--linkオプションをつける。

$ docker run --rm -it --link myredis:hoge redis /bin/bash
# redis-cli -hoge
〜 redisにデータを作成する 〜

3. redisサーバーが保存したデータをローカルにダウンロードする。

$ docker run --rm --volumes-from myredis -v $(pwd)/backup:/backup \
debian cp /data/dump.rdb /backup/

■--rm --volumes-from myredis
1.で起動したmyredisのディレクトリに接続する

■-v $(pwd)/backup:/backup
ローカルのカレントディレクトリ/backupをコンテナの/backupにマウントする。

■debian cp /data/dump.rdb /backup/
debianのイメージを起動し、cpコマンドを実行する。
/backupディレクトリはローカルのbackuupディレクトリを指しているので、結果ローカルディレクトリにファイルがコピーされる。