1. 程式人生 > >如何將anaconda+jupyter build成docker映象

如何將anaconda+jupyter build成docker映象

最近由於業務的需求,要build一個jupyter的image來提供服務,因為docker的輕量化可以很方便的遷移。下面來介紹一下我所做的操作,以及我踩的坑:

首先來安裝anaconda,有python2和3版本的,版本不同但是build的過程是一樣的,有兩種方式,第一種,你可以通過Dockerfile的方式來build image,但是在執行Anaconda2-5.0.1-Linux-x86_64.sh指令碼的時候無法實現互動,所以,我才用了docker commit的方式來執行,但是事實證明也可以通過Dockerfile的方式來build,您只需要在本機上先運行了Anaconda2-5.0.1-Linux-x86_64.sh的指令碼,並將生成的資料夾就是anaconda2 ADD到image中相應的位置,並且修改環境變數,將PATH加進去即可。下面以python2為例來說:

1. 從anaconda官網上下載執行指令碼Anaconda2-5.0.1-Linux-x86_64.sh,其中在下載的時候要注意你的系統的是32位還是64位。

2. 將指令碼scp到基礎映象中,安裝解壓指令bzip2

yum install bzip2

3. 執行指令碼(一路輸入yes)

sh Anaconda2-5.0.1-Linux-x86_64.sh

4. 更新anaconda

conda update anaconda

5. 安裝jupyter

conda install jupyter

6. 建立登入密碼

[email protected] ~]# ipython
 
Python 3.5.2 (default, Aug  4 2017, 02:13:48)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help.
 
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:5311cd8b9da9:70dd3321fccb5b5d77e66080a5d3d943ab9752b4'

7. 生成配置檔案

jupyter notebook --generate-config --allow-root

注意:在這一步的時候有可能會遇見編碼錯誤:UnicodeEncodeError:'ascii'codec can't encode characters in position...

處理的方法是:在anaconda2資料夾中的lib>python2.7>site.py更改:

if 0:     
 # Enable to support locale aware default string encodings.      
 import locale      
 loc = locale.getdefaultlocale()      
 if loc[1]:          
  encoding = loc[1]
#將上述程式碼段中if後面的0改成1,儲存,重新啟動anaconda。 

8. 修改配置檔案:

vi ~/.jupyter/jupyter_notebook_config.py

新增以下內容:
c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha1:5311cd8b9da9:70dd3321fccb5b5d77e66080a5d3d943ab9752b4' #注意這裡的金鑰是剛剛生成的那個
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888    #隨便指定一個埠,使用預設8888也可以

9.儲存映象
docker commit 容器ID 映象名稱

10. 啟動images提供服務:
docker run --privileged -d -p 8889:8888 -v /sys/fs/cgroup:/sys/fs/cgroup --name jupyter jupyter2:v2 /usr/sbin/init

注意:centos7有一個大坑,就是你在關閉防火牆的時候,systemctl 無法使用,報錯:Failed toget D-Bus connection: Operation not permitted

所以要用init來起,在Dockerfile中可以用CMD來使執行時啟動。

11. 進入docker image

docker exec -it jupyter /bin/bash

12.關閉防火牆

systemctl stop firewalls.service

13. 啟動jupyter

jupyter notebook --notebook-dir=/root/ --allow-root

14.在瀏覽器輸入伺服器的IP+對映的埠號即可訪問,完成

相關推薦

如何anaconda+jupyter builddocker映象

最近由於業務的需求,要build一個jupyter的image來提供服務,因為docker的輕量化可以很方便的遷移。下面來介紹一下我所做的操作,以及我踩的坑: 首先來安裝anaconda,有python2和3版本的,版本不同但是build的過程是一樣的,有兩種方式,第一種,

Web專案打包Docker映象,並推送到遠端

       還在實習,最近做完專案收尾時,大佬叫我自己學習下怎麼使用docker,以後自己推專案.從來沒有接觸過,搗鼓了大半天,才學會最基礎的使用,記錄一下.        環境是spring boot 用gradle管理;         首先直接將專案整個(或者

war 包 打docker映象

隨著docker等容器技術的成熟,使得dev-ops的開發理念得到落實。公司內部提供的容器都是封裝好的,於是決定嘗試自己在docker上部署第一個應用來練習練習,還是有不少坑的。前提是docker已經在本地安裝了,具體安裝步驟可以上官網檢視。 1、拉取最新的tomcat映象

jar包製作成docker映象

1、準備可執行jar包 2、建立Dockerfile檔案 檔案內容: FROM java:8 ADD api-gateway-microservice-0.1.0.jar app.jar RUN bash -c 'touch /app.jar' ENT

Spring Boot專案打包docker映象

如何完成這篇教程 像大多數的Spring系列教程 Getting Started guides,你可以從頭開始,完成每一步,也可以跳過已經熟悉的基本構建步驟。 無論哪種方式,你都可以成功。 使用maven構建 首先你得安裝構建指令碼. 你可以使用你喜歡的構建系

把自己的Tomcat專案打docker映象

1,安裝docker環境,這個很簡單,自己百度一下 2,先建立一個我們自己玩的目錄 mkdir docker-tomcat 這裡說下,網上有些資料是把自己的專案打成一個war包,然後從網上直接下載Tomcat的原始碼 個人覺得這種方式比較複雜,所以這裡採用的是直接將包含自己

Spring Boot學習總結(10)——SpringBoot打包Docker映象

<build><!--定義jar檔名,可以自定義--><finalName>${project.name}-${project.version}</finalN

【086】部署nodejs程式時,如何把自己用到的npm模組封裝Docker映象,方便在離線的時候使用?

使用場景 在本文開頭,說一下碰到的使用場景。編寫好nodejs程式後,就要封裝成Docker映象。在編譯Dockerfile的時候,系統會從npm的模組倉庫中下載用到的模組。這會碰到兩個問題: 第一,大多數情況下,我們更新程式,只是改了原始碼,沒有修改pac

嵌入式Linux---檔案系統製作系統映象

假設已經制作好檔案系統rootfs,下面就開始製作映像檔案了: 1.建立檔案系統 ramdisk8M.image  ,檔案系統格式為ext2,大小最好不要超過32M dd if=/dev/zero of=ramdisk8M.image bs=1024 count=8192 mke

通過tar命令現有的系統打包docker容器,用於構建映象檔案

    選擇一個系統,在根目錄下將已有系統打包成tar檔案:tar -cvpf /tmp/system.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=b

windows 下springboot 推送到docker上打映象

        Docker Remote API是一個取代遠端命令列介面(rcli)的REST API。本文中,我們將使用命令列工具cURL來處理url相關操作。cURL可以傳送請求、獲取以及傳送資料、檢索資訊。         一、搭建環境        選用的是

dockerjar包構建映象並執行

1.編寫Dockerfile檔案    FROM java:latest    ADD AeurekaServer-0.0.1-SNAPSHOT.jar app.jar    RUN bash -c 'touch /app.jar'    ENTRYPOINT ["java"

使用dockermaven專案打包映象

最近工作中需要使用docker打包成映象啟動,所以有了這篇文章。 差點忘了,你的maven專案中首先要有配置docker打包 以下是maven專案的配置 1.pom檔案中加入plugin <plugin>

一個簡單的python程式打包加密的docker映象並對外提供介面

環境:python2.7   docker:一、一個簡單的python程式既然是一個簡單的python程式,那我們就實現一個簡單的加法功能即可。#coding=utf-8 import random def add(aStr,bStr):     map={}     t

6、CentOS7 安裝Docker之擴充套件(三個技巧,Docker映象體積減小90%)

三個技巧,將Docker映象體積減小90% 在構建Docker容器時,應該儘量想辦法獲得體積更小的映象,因為傳輸和部署體積較小的映象速度更快。 但RUN語句總是會建立一個新層,而且在生成映象之前還需要使用很多中間檔案,在這種情況下,該如何獲得體積更小的映象呢? 你可能

springBoot專案打映象並建立容器,啟動容器,訪問專案過程

1.安裝docker就不說了 2.安裝docker 的 nexus倉庫 (1)拉取私有倉庫映象 docker pull registry   (2)啟動私有倉庫容器 docker run -di --name=registry -p 5000:5000 regi

docker映象的製作(三) 基於commit容器轉化為映象

將容器轉化為映象在上一小節中,我們已經在容器裡安裝好了nginx,接下來我們希望將這個容器內容儲存下來,這樣我們下次就無需再次安裝了。這就是Docker中將容器轉換為映象的技術。如果您還在剛剛的安裝了nginx的終端裡,執行exit退出此終端,回到系統本身的終端:ps命令可以

基於CentOS7JavaWeb專案生成docker映象

近段時間接觸docker,嘗試著將javaweb專案做成一個docker映象,下面具體說明生成步驟,如有不足,希望能在後續的學習中查漏補缺。 一 前提 關於docker環境的搭建這裡不再贅述,網上也有很多教程,值的一提的是centos7版本,Docker 軟

使用docker-maven-plugin外掛專案編譯為docker映象到遠端linux伺服器(非常有用)

 在win10中使用idea開發一個模組化的maven專案,然後想要把該專案直接編譯到遠端Linux伺服器的Docker中,具體做法如下:        第一:在各模組中的pom檔案中加入以下 <plugin> <groupId>co

docker映象的製作(二)----新手指南:如何應用打包成為 Docker 映象

雖然 DockerHub 提供了大量的映象,但是由於企業環境的多樣性,並不是每個應用都能在 DockerHub 找到對應的映象來使用。那就要求企業的運維人員掌握製作 Docker 映象的技能。在開始打包應用前,你首先要明白這兩件事:第一件事是選擇適合你的方式來生成映象: 1. 通過 Dockerfile 來自