GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara menjalankan Jupiter, Keras, Tensorflow, dan lib ML lainnya di Docker

Artikel ini akan melanjutkan seri artikel terkait Docker dan menunjukkan cara membuat container Docker berbasis Ubuntu 20.04 LTS untuk Machine Learning. Kami akan menginstal ke lingkungan:Python 3, Jupyter, Keras, Tensorflow, TensorBoard, Pandas, Sklearn, Matplotlib, Seaborn, pyyaml, h5py. Siapkan lingkungan ML pribadi Anda dalam 3 menit, tidak termasuk waktu pembuatan image Docker!

Pembaruan 2020

Saya telah memperbarui wadah ke basis Ubuntu 20.04 LTS dan mempercepat proses pembuatan Docker. Sekarang kami tidak membuat OpenCV dari sumber tetapi menginstalnya dari apt .

Penyiapan lingkungan adalah pertanyaan umum saat Anda mulai mempelajari Machine Learning (ML). Dalam artikel ini, saya akan menunjukkan cara membuat wadah Docker Anda sendiri, termasuk kerangka kerja berikut untuk memulai dengan nyaman:

  • Python 3
  • Jupyter
  • Keras
  • Aliran Tensor
  • Papan Tensor
  • Panda
  • Sklearn
  • Matplotlib
  • Laut
  • pyyaml
  • h5py

Itu adalah TOP 10 kerangka kerja Python yang banyak digunakan untuk Ilmu Data, dan Anda akan menemukan sebagian besar dari mereka di artikel petunjuk apa pun di Internet. Di artikel berikutnya (Cara membangun wadah Docker Data Science Python berdasarkan Anaconda), saya akan menunjukkan cara membuat gambar yang sama di atas distribusi Anaconda.

Persyaratan

Anda hanya perlu menginstal Docker dan editor teks di sistem Anda.

Struktur Proyek

Berikut struktur tugas akhir:

$ tree -a python_data_science_container

$ python_data_science_container
├── Dockerfile
├── conf
│   └── .jupyter
│       └── jupyter_notebook_config.py
└── run_jupyter.sh

2 directories, 3 files

Dockerfile

Yang perlu Anda lakukan hanyalah membuat folder proyek dan nama file Dockerfile di dalam:

$ mkdir python_data_science_container

$ cd python_data_science_container

$ vim Dockerfile

Setelah itu, letakkan konten berikut ke Dockerfile :

FROM ubuntu:20.04
MAINTAINER "Andrei Maksimov"

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install -y \
	libopencv-dev \
        python3-pip \
	python3-opencv && \
    rm -rf /var/lib/apt/lists/*

RUN pip3 install tensorflow && \
    pip3 install numpy \
        pandas \
        sklearn \
        matplotlib \
        seaborn \
        jupyter \
        pyyaml \
        h5py && \
    pip3 install keras --no-deps && \
    pip3 install opencv-python && \
    pip3 install imutils

RUN ["mkdir", "notebooks"]
COPY conf/.jupyter /root/.jupyter
COPY run_jupyter.sh /

# Jupyter and Tensorboard ports
EXPOSE 8888 6006

# Store notebooks in this mounted directory
VOLUME /notebooks

CMD ["/run_jupyter.sh"]

Anda dapat selalu menemukan contoh terbaru dari Dockerfile saya sendiri di GitHub, yang saya gunakan untuk membuat lingkungan penampung Ilmu Data pribadi saya (juga tersedia di Docker Hub secara gratis).

Konfigurasi Jupyter

Segera setelah kami mendeklarasikan container dan komponennya, saatnya menyiapkan konfigurasi untuk Jupyter. Buat file jupyter_notebook_config.py dengan konten berikut:

# get the config object
c = get_config()
# in-line figure when using Matplotlib
c.IPKernelApp.pylab = 'inline'
c.NotebookApp.ip = '*'
c.NotebookApp.allow_remote_access = True
# do not open a browser window by default when using notebooks
c.NotebookApp.open_browser = False
# No token. Always use jupyter over ssh tunnel
c.NotebookApp.token = ''
c.NotebookApp.notebook_dir = '/notebooks'
# Allow to run Jupyter from root user inside Docker container
c.NotebookApp.allow_root = True

Seperti yang bisa Anda tebak dari Dockerfile , kami akan memasukkannya ke dalam /root/.jupyter/ folder selama proses pembuatan kontainer.

Membuat skrip startup

Hal terakhir yang perlu kita lakukan adalah membuat skrip run_jupyter.sh , yang akan meluncurkan server Jupiter di dalam wadah kami selama proses awal. Buat a dengan konten berikut:

#!/usr/bin/env bash

jupyter notebook "$@"

Dan buat file ini dapat dieksekusi:

$ chmod +x run_jupyter.sh

File ini akan diluncurkan di dalam penampung Anda secara default setiap kali Anda memulai yang baru.

Membuat gambar kontainer

Tahap terakhir – pembuatan wadah. Jalankan saja perintah berikut untuk membangun wadah Docker Anda dari direktori proyek:

$ docker build -f Dockerfile -t python_data_science_container .

Docker akan menginstal semua library dan framework yang diperlukan di dalam image container Anda selama proses build dan membuatnya tersedia untuk digunakan.

Menjalankan container

Sekarang Anda memiliki wadah yang berfungsi, dan inilah saatnya untuk memulainya. Buat folder di dalam folder proyek Anda tempat kami akan menyimpan semua Notebook Jupyter kami dengan kode sumber proyek kami:

$ mkdir notebooks

Dan mulai wadah dengan perintah berikut:

$ docker run -it -p 8888:8888 \
    -p 6006:6006 \
    -d \
    -v $(pwd)/notebooks:/notebooks \
    python_data_science_container

Ini akan memulai penampung dan memaparkan Jupyter ke port 8888 dan Dasbor Tensorflow pada port 6006 di komputer lokal atau server Anda, bergantung di mana Anda menjalankan perintah ini.

Perlu diketahui bahwa penampung ini dibuat hanya untuk tujuan pengembangan lokal. saya menghapus autentikasi pada Jupyter dalam wadah ini, sehingga semua orang dapat terhubung ke port 8888 atau 6006 dan menjalankan kode penyebab Python.

Jika Anda hanya mencari solusi yang berfungsi

Jika Anda tidak ingin membuat dan memelihara wadah Anda sendiri dan komponen di atas sudah cukup untuk Anda, silakan gunakan wadah pribadi saya, yang biasanya saya perbarui:

$ docker run -it -p 8888:8888 \
    -p 6006:6006 \
    -d \
    -v $(pwd)/notebooks:/notebooks \
    amaksimov/python_data_science

Saya harap artikel ini akan membantu Anda. Jika Anda menyukai artikel ini, silakan posting ulang menggunakan media sosial apa pun yang Anda suka. Sampai jumpa lagi!


Docker
  1. Cara Mengekspor dan Mengimpor Kontainer Docker

  2. Cara menginstal dan mengatur Docker Container di Rocky Linux 8

  3. Bagaimana Cara Menjalankan Program Di Dalam Wadah Docker?

  1. Cara Menjalankan MySQL Dalam Wadah Docker

  2. Cara Menjalankan Perintah di Running Docker Container

  3. Cara Menginstal, Menjalankan, dan Menghapus Aplikasi di Dalam Wadah Docker – Bagian 2

  1. Cara SSH ke dalam Running Docker Container dan Jalankan Perintah

  2. Cara Menyebarkan dan Menjalankan Redis di Docker

  3. Cara Menginstal Docker dan Menjalankan Wadah Docker di Ubuntu