[PYTHON] (Hinweis) Hinweise zum Erstellen einer Tensor Flow-Umgebung mit Docker Compose (nur ein Container)

Einführung

Für mein Memorandum: Schweiß: Dies ist ein Memo beim Erstellen einer Python + TensorFlow + Keras-Umgebung mit Docker Compose (nur ein Container). Bitte beachten Sie, dass dies ein Artikel ist, den ich für mich selbst erstellt habe. Daher ist es möglicherweise schwer zu verstehen, Informationen und Technologie sind möglicherweise veraltet: bow_tone1:

Referenzmaterial

Ich habe es als Referenz verwendet: bow_tone1:

Umgebung * Ich denke, es wird funktionieren, auch wenn es nicht die folgende Ver ist, aber bitte beachten Sie, dass es alt ist: no_good_tone2: </ sup>

Ubuntu-Version

$ 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=bionic

Docker-Version

$ 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:        fec3683

Docker-Version verfassen

$ 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

* Aus irgendeinem Grund Build unbekannt. Ich gab auf, weil es einige Zeit zu dauern schien: schluchzen: </ sup>

Verzeichnisaufbau

Ich mache es richtig zum Testen. .. ..

dk_ai_dir
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── src1

Inhalt der erforderlichen Dateien

docker-compose.yml


version: '3'
services:
  dk_ai:
    restart: always
    build: .
    container_name: 'dk_ai'
    tty: true
    volumes:
      #Verzeichnis zum Mounten
      - .:/dk_ai_dir
    ports:
      #Host-seitiger Port: Container-seitiger Port
      - 7000:7000

Dockerfile


FROM 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.utf8

requirements.txt


Flask==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.2

Docker-Compose-Build (im Hintergrund gestartet)

$ docker-compose up -d --build

Docker-Compose Bildinformationen anzeigen

$ docker-compose images
Container     Repository       Tag       Image Id       Size  
--------------------------------------------------------------
dk_ai       dk_ai_dir_dk_ai   latest   6f8b190eba7e   2.103 GB

Ist es schlecht gemacht? Es scheint, dass die Kapazität ziemlich groß ist: Schweiß: </ sup>

Liste der Container

$ docker-compose ps
Name     Command    State           Ports         
--------------------------------------------------
dk_ai   /bin/bash   Up      0.0.0.0:7000->7000/tcp

Mit Container verbinden

$ docker-compose exec dk_ai /bin/bash
root@ddc90c65586d:/dk_ai_dir# pwd
/dk_ai_dir

Überprüfen Sie den Inhalt, um festzustellen, ob dies erledigt ist

Ich habe einige weggelassen, weil die Anzeige des Ausgabeergebnisses lang ist: Schweiß: </ sup>

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

Überprüfen Sie dies vorerst mit dem Docker-Befehl

$ 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

Andere Gegenstände als die, die ich dieses Mal gemacht habe (dk_ai_dir_dk_ai), sind diejenigen, die ich in der Vergangenheit gemacht habe. Es scheint, dass die Kapazität ziemlich groß ist: Schweiß: </ sup>

Dienstausfall

$ docker-compose stop
Stopping dk_ai ... done
$ docker-compose ps
Name     Command    State    Ports
----------------------------------
dk_ai   /bin/bash   Exit 0        

Start des Dienstes

$ 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

Wenn Sie die Umwelt reinigen möchten

* Referenzmaterial ist wie es ist. Weitere Informationen finden Sie in den Referenzmaterialien: bow_tone1: </ sup>

#Stoppen und löschen
#Containernetzwerk
docker-compose down

#Container-Netzwerk-Image
docker-compose down --rmi all

#Containernetzwerkvolumen
docker-compose down -v

Recommended Posts

(Hinweis) Hinweise zum Erstellen einer Tensor Flow-Umgebung mit Docker Compose (nur ein Container)
(Hinweis) Hinweise zum Erstellen einer TensorFlow + Flask + Nginx-Umgebung mit Docker Compose
Hinweis zum Erstellen einer eigenen Miniconda-Umgebung
Hinweis: Bereiten Sie die Umgebung von CmdStanPy mit Docker vor
Erstellen einer TensorFlow-Umgebung, die GPUs unter Windows 10 verwendet
Starten Sie Django auf einem Docker-Container mit Docker-Compose Up
Hinweise zum Erstellen einer virtuellen Umgebung mit Anaconda Navigator
[Django] Erstellen Sie mit PyCharm schnell eine Entwicklungsumgebung für Django-Container (Docker)
Bereiten Sie die Python3-Umgebung mit Docker vor
[Tensorflow] Aufbau der Tensorflow-Umgebung unter Windows 10
Versuchen Sie, Jupyter Hub mit Docker zu erstellen
Erstellen Sie eine Rails-Anwendung mit Docker
Erstellen einer HPC-Lernumgebung mit Docker Compose (C, Python, Fortran)
Erstellen Sie ein Docker-Container-Image mit JRE8 / JDK8 unter Amazon Linux
Postgres-Umgebungskonstruktion mit Docker Ich hatte ein wenig Probleme, also beachten Sie
Erstellen einer Entwicklungsumgebung mit Maven in Google App Engine [Java]