1. 程式人生 > >Docker: 使用jupyter notebook基礎映象搭建自己的 pytorch 開發環境

Docker: 使用jupyter notebook基礎映象搭建自己的 pytorch 開發環境

Docker: 使用jupyter notebook基礎映象搭建自己的PyTorch開發環境

關鍵字:docker jupyter notebook pytorch spotlight

啟動最基本的jupyter notebook映象:

使用基礎映象jupyter/datascience-notebook,因為它預裝了常用的模組:pandas, matplotlib, scipy, seaborn, scikit-learn, scikit-image, sympy, cython, patsy, statsmodel, cloudpickle, dill, numba, bokeh

docker run -it --rm -p 8888:8888 jupyter/datascience-notebook:281505737f8a

其中
docker run是使用一個映象生成一個執行的容器;

-it指互動模式,啟動後終端在執行著的容器裡面,與之對應的有-d後端執行模式,啟動後終端互動在實體機,要想進入容器需要使用命令docker exec -it container-name bash docker exec -it container-name意為互動模式進入正在執行的一個容器,bash意為進入容器後使用的命令,這裡用的是bash,這樣進入容器後就能執行shell;

--rm意為退出shell的時候自動刪除容器,常在測試的時候使用,這樣不用每次修改去刪除已有的容器;

-p 8888:8888指的是埠對映,前面的是實體機的埠,後面是容器裡面暴露出的埠,兩邊埠可以不一樣,這樣同一個映象可以啟動多個對應不同埠的服務;

jupyter/datascience-notebook:281505737f8a是映象名字,冒號後面的是tag,類似於版本的概念,如果不顯式的給出tag每次都回從hub上拉取latest的映象,如果網路環境不好的話比較費時間,推薦顯式給出tag,這樣每次構建都會使用已有的映象。

啟動後就可以在終端看到:

[I 04:01:05.691 NotebookApp] Running the core application with
no additional extensions or settings [I 04:01:05.692 NotebookApp] Serving notebooks from local directory: /home/jovyan [I 04:01:05.692 NotebookApp] 0 active kernels [I 04:01:05.692 NotebookApp] The Jupyter Notebook is running at: [I 04:01:05.692 NotebookApp] http://[all ip addresses on your system]:8888/?token=0a3331628e0e35f94eb0ad543faeb3e396fbccfa3ff06e5a [I 04:01:05.692 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [C 04:01:05.692 NotebookApp] Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=0a3331628e0e35f94eb0ad543faeb3e396fbccfa3ff06e5a

此時是停在容器裡面,開啟瀏覽器 訪問http://localhost:8888/?token=0a3331628e0e35f94eb0ad543faeb3e396fbccfa3ff06e5a 即可開啟基本的jupyter notebook 環境,後面的token是隨機生成的;

啟動帶許可權的容器

生成自定義token

# Python指令碼生成密碼
import IPython
IPython.lib.passwd()

輸入密碼生成token

testtokensha1:6587feaef3b1:6b243404e4cfaafe611fdf494ee71fdaa8c4a563

自定義token執行容器:

docker run -d -p 8888:8888 jupyter/datascience-notebook start-notebook.sh --NotebookApp.password='sha1:6587feaef3b1:6b243404e4cfaafe611fdf494ee71fdaa8c4a563'

這時訪問http://localhost:8888/會出現輸入密碼的頁面,輸入正確的密碼才能進入jupyter。

共享目錄

-v引數

docker提供-v引數使實體機和容器共享目錄,這對於有狀態的服務很有用,目錄掛載新增引數:
-v /home/jason/jason/docker/notebook:/home/jovyan/work

執行帶有目錄共享的容器

docker run -it --rm -p 8888:8888 -v /home/jason/jason/docker/notebook:/home/jovyan/work   jupyter/datascience-notebook start-notebook.sh --NotebookApp.password='sha1:6587feaef3b1:6b243404e4cfaafe611fdf494ee71fdaa8c4a563'

這樣在jupyter裡新建的notebook都會出現在實體機指定的目錄裡。由於這個映象的原因 需在work目錄下新建才能在實體機看到。

基於jupyter/datascience-notebook 生成pytorch image

Dockerfile

因為沒有合適的pytorch映象,自己編輯Dockerfile:

新建檔案Dockerfile並編輯內容:

FROM jupyter/datascience-notebook:281505737f8a
MAINTAINER Jason.W. "[email protected]"
# 下面是按官網的方法安裝spotlight
#RUN pip --no-cache-dir install --upgrade install http://download.pytorch.org/whl/cu75/torch-0.2.0.post3-cp36-cp36m-manylinux1_x86_64.whl 
#RUN pip --no-cache-dir install --upgrade torchvision

# pytorch
RUN conda install pytorch torchvision -c soumith
# spotlight(https://github.com/maciejkula/spotlight)
RUN conda install -c maciejkula -c soumith spotlight=0.1.2

build

在Dockerfile目錄裡執行命令:docker build -t jianchengss/datascience-pytorch:0.1 .
這樣就生成了image:jianchengss/datascience-pytorch:0.1可以執行docker images檢視本機上所有的image。

從構建的映象執行容器

docker run -it --rm -p 8888:8888 -v ~/workspace/python/notebooks-pytorch:/home/jovyan/work  --privileged=true jianchengss/datascience-pytorch:0.1 start-notebook.sh --NotebookApp.password='sha1:6587feaef3b1:6b243404e4cfaafe611fdf494ee71fdaa8c4a563'

最終容器

經過以上步驟,測試完成後既可以執行最終執行的命令 注意 token換成自己的

docker run -d -p 8588:8888 -v ~/workspace/python/notebooks-pytorch:/home/jovyan/work  --privileged=true --name=pytorch jianchengss/datascience-pytorch:0.1 start-notebook.sh --NotebookApp.password='sha1:7aee2f913c8e:17d40f203cbd5c9820f302894a92724c3de9fba6'

-it --rm 換成了 -d,比之前多的引數有:

--name=pytorch,意為給container取一個名字,好區分和管理,預設的話名字為一串隨機的字串。

--privileged=true出現資料夾訪問許可權的時候新增該屬性

此時執行docker ps即可檢視執行著的容器:

CONTAINER ID        IMAGE                                 COMMAND                  CREATED             STATUS              PORTS                    NAMES
3bd3e30e9ab3        jianchengss/datascience-pytorch:0.1   "tini -- start-notebo"   4 seconds ago       Up 3 seconds        0.0.0.0:8588->8888/tcp   pytorch

進入容器操作

容器啟動後有時候需要進入容器操作,比方說檢視資訊或者安裝新的軟體,此時執行docker exec -it pytorch bash

其他命令

docker stop container-name # 停止執行著的容器
docker rm container-name # 刪除已有的容器,要先停止
docker rmi image-name # 刪除已有的映象

相關推薦

Docker 使用jupyter notebook基礎映象搭建自己pytorch 開發環境

Docker: 使用jupyter notebook基礎映象搭建自己的PyTorch開發環境 關鍵字:docker jupyter notebook pytorch spotlight 啟動最基本的jupyter notebook映象: 使用基礎映象j

Java Web學習(3)Win7 64位作業系統搭建Java Web開發環境

        一搭建Java Web開發環境的總體概覽        工欲善其事必先利其器。學會搭建Java Web開發環境是學習JSP動態網站開發的最基本技能之一。主要介紹在 Windows 7

教程 | 一步步從零開始使用PyCharm和SSH搭建遠端TensorFlow開發環境

作者:Erik Hallström 機器之心編譯 參與:機器之心編輯部 一般而言,大型的神經網路對硬體能力有著較高的需求——往往需要強勁的 GPU 來加速計算。但是你也許還是想拿著一臺筆記本坐在咖啡店裡安靜地寫 TensorFlow 程式碼,同時還能享受每秒數萬億次

傲視Kubernetes(二)Docker映象搭建與本地Kubernetes環境搭建

主要內容: 1、Docker與Kubernetes的關係 2、SpringBoot微服務的Docker映象建立 3、Kubernetes本地環境搭建 一、Docker與Kubernetes的關係 在說明Docker與Kubernetes的關係之前,要先同步一下Docker定義--Docker是什麼?Docke

docker學習系列-jdk基礎映象製作

準備一臺安裝有docker服務的機器 1.編輯Dockerfile   vim Dockerfile FROM centos:latest ADD ./jdk-8u141-linux-x64.tar.gz /usr/local ENV JAVA_HOM

【16-20】視覺化jupyter notebook做視覺化

由於使用的是jupyter notebook,這裡不做展示,詳細內容可參考github。 net = caffe.Net(caffe_root + 'examples/cifar10/cifar10_full.prototxt', caffe_root + 'ex

macjupyter notebook使用lightgbm

最近習慣了用jupyter notebook做比賽,但是使用lightgbm這種模組的時候,報錯說“找不到相關模組”,於是各種谷歌百度,最終解決了這個問題,下面和大家分享一下,也給自己做一下筆記。 1.lightgbm的安裝教程在前一篇的部落格有寫,這裡不在贅述。  2.開啟你的j

Truechain運用docker映象搭建TrueChain測試私有環境

安裝docker Mac參考https://blog.csdn.net/jiang_xinxing/article/details/58025417 1.2Docker命令 docker --version docker-compose --version

Docker入門實踐(四) 打造自己開發環境映象

許多Docker映象都是開箱即用的,但有時候卻並不一定滿足我們的需求,比如,你直接從Docker Hub拉取的tomcat 使用的Java VM是Open JDK,但通常我們需要使用Oracle JDK。由於版權問題,Docker Hub無法提供基於Oracle

Centos下Docker使用映象和DockerFile方式搭建JAVA Web 開發環境

1、環境1、1先決條件1.必須是64位CPU架構的計算機,Docker目前不支援32位CPU;2.執行Linux3.8或更高版本核心,CentOS時核心必不小於3.10;3.核心必須支援一種合適的儲存驅動,可以是Device Manager、AUFS、vfs、btrfs、以及

教程|Jupyter Notebook基礎教程——快捷鍵的使用

    訪問flyai.club,一鍵建立你的人工智慧專案   鍵盤快捷鍵 在這個筆記本中,你會得到一些關於使用鍵盤快捷鍵的練習。這是熟練使用筆記本的關鍵,能夠很大程度地幫助你提高你的工作速度。 首先,在編輯模式和命令模式間相互

機器學習新手必看Jupyter Notebook入門指南

翻譯 | 張建軍出品 | 人工智慧頭條(公眾號ID:AI_Thinker)【人工智慧頭條導讀】Jupyter

【邢不行|量化小講堂系列22-Python量化入門】最優雅的Python程式設計方式Jupyter Notebook視訊教程

引言: 邢不行的系列帖子“量化小講堂”,通過實際案例教初學者使用python進行量化投資,瞭解行業研究方向,希望能對大家有幫助。 【歷史文章彙總】請點選此處 個人微信:coinquant,有問題歡迎交流。 最優雅的Python程式設計方式:Ju

【JAVA零基礎入門系列】Day1 開發環境搭建

oracle 零基礎 ati 成功 官方 運行 根目錄 文件目錄 sys 一、安裝JDK java的sdk簡稱JDK ,去其官方網站下載最近的JDK即可。 http://www.oracle.com/technetwork/java/javase/downloads/jdk

第1篇 Qt5基礎(一)Qt開發環境搭建和hello world

1、開發qt可以使用那些IDE? 使用Qt Creator進行Qt開發; 使用VS進行Qt開發; 不用IDE,直接使用記事本也可以編寫Qt程式。 2、在專案模板中選擇Application,然後選擇Qt Widgets Application,這樣便會生成一個桌面Qt圖

搭建自己Android開發框架

摘要 Android優秀的開發框架有很多,很多功能都有成熟的解決方案,比如網路請求、依賴注入、圖片載入、資料庫等都有很多開源的框架可以直接使用,我們可以站在巨人的肩膀上,組合一套自己常用的開發框架,也可以作為公司的開發框架,達到快速開發的目的。選擇框架的原則:1、能滿足自己的業務需求

EOSIOEOSIO最新版1.4.0 錢包開發環境搭建

EOSIO最新版1.4.0 開發環境錢包的搭建 前言 EOSIO1.4.0在2018年10月17日釋出,相應的開發文件也於今天2018年10月29日在官網上線。在上週,博主 被領導要求開始看EOS合約,當然也是一番折騰將環境搭建好了,當然是下載的EOSIO的最新版本來使用。但是在

Docker容器中搭建MXNet/Gluon開發環境

在這篇文章中沒有直接使用MXNet官方提供的docker image,而是從一個乾淨的nvidia/cuda映象開始,一步一步部署mxnet需要的相關軟體環境,這樣做是為了更加細緻的瞭解mxnet的執行環境,方便後續我們更加靈活的去修改相關的配置。 1. 通過docker建立乾淨的系統環境 docker r

Objective C 學習心得 (一)--Windows下搭建objective C開發環境

      最近打算針對iPhone、iPod touch和iPad開發一些應用,所以,需要開始學習Objective C(蘋果推出的類似C語言的開發語言)。由於蘋果的自我封閉的產業鏈發展模式(從晶片、機器、開發語言、終端產品、服務)的限制,要想開發針對蘋果iPhone等產品

如何利用 Docker 搭建網站的開發環境

準備工作在前面的章節,我們已經介紹瞭如何在 Windows 中安裝 Docker,並介紹了一些常用的命令。下面我們將具體介紹,如何使用 Docker 來搭建網站的開發環境。我們以 ThinkPHP 5.1 為例,介紹如何在 Windows 中利用 docker 搭建 tp5