<Начиная с 0> Создайте образ докера jupyter+tensorflow+keras

Keras

Записывай, пока горячо, для себя в будущем

предисловие

В последнее время я изучаю машинное обучение.Чтобы облегчить доступ к одним и тем же учебным ресурсам в разных местах, обеспечить непрерывность процесса обучения и снизить стоимость обучения без необходимости повторного создания среды, необходимо построить онлайн обучающая платформа, чтобы убедиться, что ее можно использовать где угодно., вы можете быстро войти в состояние обучения. С помощью jupyter он может полностью удовлетворить мои потребности.

Кроме того, учитывая удобство портирования, для сборки и развертывания платформы будет использоваться метод docker.

необходимые документы

Dockerfile

Сначала напишите файл Dockerfile для создания образа докера.

Примечание. Dockerfile должен находиться в том же каталоге, что и sources.list.

    FROM rackspacedot/python37
    MAINTAINER arkMon

    RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak
    # 替换apt源为国内源,加快构建速度
    COPY ./sources.list /etc/apt/ 
    RUN apt-get update & apt-get upgrade -y
    # 更新pip源
    RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ 
    RUN /usr/local/bin/python -m pip install --upgrade pip
    # 安装python画图插件
    RUN pip3 install matplotlib 
    # 安装jupyter
    RUN pip3 install jupyter 
    RUN ipython3 kernel install
    # 安装Jupyter交互界面扩展组件
    RUN pip3 install ipywidgets 
    # 安装Jupyter交互界面扩展组件
    RUN jupyter nbextension enable --py widgetsnbextension
    # 配置Jupyter远程访问
    RUN echo "c.NotebookApp.open_browser = False" >> /root/.jupyter/jupyter_notebook_config.py 
    RUN echo "c.NotebookApp.notebook_dir = '/root/jupyter'" >> /root/.jupyter/jupyter_notebook_config.py
    RUN echo "c.NotebookApp.ip = '*'" >> /root/.jupyter/jupyter_notebook_config.py
    RUN echo "c.NotebookApp.base_url = '/jupyter'" >> /root/.jupyter/jupyter_notebook_config.py 
    RUN echo "c.NotebookApp.allow_origin = '*'" >> /root/.jupyter/jupyter_notebook_config.py 
    # 安装tensorflow
    RUN pip3 install --upgrade tensorflow
    RUN pip3 install tensorflow
    # 安装keras
    RUN pip3 install keras
    # 启动容器时命令,因为容器默认在root用户下,故这里需要加上--allow-root
    CMD jupyter notebook --allow-root

sources.list

Используйте внутреннее изображение Alibaba Cloud от apt для ускоренияapt-getскорость

$ cat sources.list

    deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

построить образ

$ docker build .

Примечание. Рабочий каталог этой команды и Dockerfile должны находиться в одном каталоге.

загрузочный образ

$ docker run -dti --name jupyter_keras -p 40000:8888 -v /data/workspace/docker-install/keras_jupyter/jupyter:/root/jupyter ${image_id}

положить в контейнер/root/jupyterКаталог монтируется на хост/data/workspace/docker-install/keras_jupyter/jupyterПод содержанием,

  • С одной стороны, файлы, отредактированные в jupyter, могут быть сохранены на хосте для обеспечения безопасности данных.
  • С другой стороны, можно выполнить последующее горизонтальное расширение балансировки нагрузки: использовать этот образ для запуска нескольких копий контейнера, все контейнеры монтируются в один и тот же каталог хоста, и использовать восходящую функцию nginx для достижения возможностей балансировки нагрузки.

внешний доступ

адрес:http://HostIP:40000