Записывай, пока горячо, для себя в будущем
предисловие
В последнее время я изучаю машинное обучение.Чтобы облегчить доступ к одним и тем же учебным ресурсам в разных местах, обеспечить непрерывность процесса обучения и снизить стоимость обучения без необходимости повторного создания среды, необходимо построить онлайн обучающая платформа, чтобы убедиться, что ее можно использовать где угодно., вы можете быстро войти в состояние обучения. С помощью 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