- 投稿日:2020-05-15T00:27:23+09:00
(備忘録)Docker Compose(1コンテナだけ)でTensor Flow環境構築時のメモ
はじめに
自分の備忘録用です
Docker Compose(1コンテナだけ)でPython+TensorFlow+Kerasの環境を作る時のメモです。
自分用に作った記事なので、分かりにくい点や情報、技術が古いかもしれませんがご了承ください参考資料
参考にさせて頂きました
- DockerでDjangoの開発環境を再構築!!!!
- Docker入門(第六回)〜Docker Compose〜
- 初心者向けdocker-composeコマンド逆引き
- docker-compose コマンドまとめ
- Dockerコマンド よく使うやつ
- Docker一括削除コマンドまとめ
環境 ※以下のVerでなくても動くと思いますが、古いのでご注意下さい
Ubuntuバージョン$ cat /etc/os-release NAME="Ubuntu" VERSION="18.04.4 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.4 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionicDockerバージョン$ docker version Client: Docker Engine - Community Version: 19.03.8 API version: 1.40 Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:25:46 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.8 API version: 1.40 (minimum version 1.12) Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:24:19 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683Docker-Composeバージョン$ docker-compose version docker-compose version 1.25.5, build unknown docker-py version: 4.2.0 CPython version: 3.7.4 OpenSSL version: OpenSSL 1.1.1c 28 May 2019※なぜかbuild unknown。時間掛かりそうだったので諦めました
ディレクトリ構成
テスト用で適当に作っています。。。
dk_ai_dir ├── Dockerfile ├── docker-compose.yml ├── requirements.txt ├── src1必要なファイルの中身
docker-compose.ymlversion: '3' services: dk_ai: restart: always build: . container_name: 'dk_ai' tty: true volumes: # マウントするディレクトリ - .:/dk_ai_dir ports: # ホスト側のポート:コンテナ側のポート - 7000:7000DockerfileFROM ubuntu:18.04 WORKDIR /dk_ai_dir COPY requirements.txt /dk_ai_dir RUN apt-get -y update \ && apt-get -y upgrade \ && apt-get install -y --no-install-recommends locales curl python3-distutils vim ca-certificates \ && curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \ && python3 get-pip.py \ && pip install -U pip \ && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && pip install -r requirements.txt --no-cache-dir ENV LANG en_US.utf8requirements.txtFlask==1.1.0 gunicorn==19.9.0 Keras>=2.2.5 numpy==1.16.4 pandas==0.24.2 pillow>=6.2.0 python-dateutil==2.8.0 pytz==2019.1 PyYAML==5.1.1 requests==2.22.0 scikit-learn==0.21.2 sklearn==0.0 matplotlib==3.1.1 tensorboard>=1.14.0 tensorflow>=1.14.0 mecab-python3==0.996.2docker-compose ビルド(backgroundで起動)
$ docker-compose up -d --builddocker-compose イメージ情報を表示
$ docker-compose images Container Repository Tag Image Id Size -------------------------------------------------------------- dk_ai dk_ai_dir_dk_ai latest 6f8b190eba7e 2.103 GB作り方が悪いのか結構容量大きいような
コンテナの一覧表示
$ docker-compose ps Name Command State Ports -------------------------------------------------- dk_ai /bin/bash Up 0.0.0.0:7000->7000/tcpコンテナに接続
$ docker-compose exec dk_ai /bin/bash root@ddc90c65586d:/dk_ai_dir# pwd /dk_ai_dirできているか中身を確認
出力結果の表示が長いのでいくつか省きました
root@ddc90c65586d:/dk_ai_dir# pip3 list Package Version ---------------------- ----------- absl-py 0.9.0 Flask 1.1.0 gunicorn 19.9.0 h5py 2.10.0 joblib 0.14.1 Keras 2.3.1 Keras-Applications 1.0.8 Keras-Preprocessing 1.1.2 matplotlib 3.1.1 mecab-python3 0.996.2 numpy 1.16.4 pandas 0.24.2 Pillow 7.1.2 pip 20.1 pyparsing 2.4.7 python-dateutil 2.8.0 requests 2.22.0 rsa 4.0 scikit-learn 0.21.2 scipy 1.4.1 setuptools 46.3.0 sklearn 0.0 tensorboard 2.2.1 tensorboard-plugin-wit 1.6.0.post3 tensorflow 2.2.0 tensorflow-estimator 2.2.0 urllib3 1.25.9 wheel 0.34.2一応、dockerコマンドでも確認
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE dk_ai_dir_dk_ai latest 6f8b190eba7e 29 minutes ago 2.1GB webque-api-img latest d0aa942613bc 9 days ago 1.9GB python 3 4f7cd4269fa9 2 weeks ago 934MB ubuntu 18.04 c3c304cb4f22 2 weeks ago 64.2MB $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ddc90c65586d dk_ai_dir_dk_ai "/bin/bash" 30 minutes ago Up 30 minutes 0.0.0.0:7000->7000/tcp dk_ai 860f6e3c6376 webque-api-img "/bin/bash" 8 days ago Up 2 days 0.0.0.0:8888->8888/tcp webqueapi今回作った物(dk_ai_dir_dk_ai)以外の物は、過去に作ったものです。結構容量大きいような
サービス停止
$ docker-compose stop Stopping dk_ai ... done $ docker-compose ps Name Command State Ports ---------------------------------- dk_ai /bin/bash Exit 0サービス開始
$ docker-compose start Starting dk_ai ... done $ docker-compose ps Name Command State Ports -------------------------------------------------- dk_ai /bin/bash Up 0.0.0.0:7000->7000/tcp環境をクリーンにしたい時
※参考資料そのままです。詳細は参考資料等見て下さい
# 停止&削除 # コンテナ・ネットワーク docker-compose down # コンテナ・ネットワーク・イメージ docker-compose down --rmi all # コンテナ・ネットワーク・ボリューム docker-compose down -v