1. 程式人生 > >使用Docker搭建tensorflow開發環境

使用Docker搭建tensorflow開發環境

使用Docker搭建tensorflow nmt開發環境

Docker是目前最流行的容器技術. 可以將Docker看成輕量級的虛擬機器,但是它非常輕量. 它像是一艘運輸船,將開發或者運維等等過程中所需要的依賴全部打包到一個映象(image)中, 任何人只需要將該映象拉取下來, 就可以開箱即用, 不需要自己去安裝一大堆依賴. 同時因為這些依賴都是執行在容器裡面的, 不會汙染宿主機的環境, 因此非常適合用來開發運維等等.

Docker的官方網站有更加詳細的介紹和非常棒的技術文件: Docker

本教程將帶領大家使用Docker搭建tensorflow的開發環境.
tensorflow官方也有安裝的文件,建議首先按照官方文件來安裝,如果遇到問題,可以回來參考本文.  

需要說明的是, tensorflow有CPU和GPU兩種版本, 本教程使用的是GPU版本,如果你需要安裝CPU版本,請參考tensorflow的文件.

本教程所使用的環境  

本教程使用的環境如下:  
* 系統是Ubuntu 16.04 amd64
* 顯示卡是GTX 1080ti  

使用GPU版本的tensorflow需要使用CUDA toolkit,本文後續會有講解.
接下來,可以正式進入到開發環境的搭建過程.  

Docker的安裝  

Docker有CE和EE兩個版本,對於個人使用者,建議安裝Docker-CE.
Docker官方有非常詳細的安裝文件:

Docker installation

本教程將主要步驟羅列如下:
* 解除安裝舊版本的Docker
* 使用apt安裝Docker

使用apt安裝Docker

在Ubuntu平臺上使用apt安裝Docker非常方便.按照如下步驟,一般不會出現問題.

step 1.設定軟體倉庫

$ sudo apt-get update  
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common  

step2.新增官方的GPG key

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -  

如果你想驗證指紋,則:

sudo apt-key fingerprint 0EBFCD88

你會看到如下輸出:

pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <[email protected]>
sub   4096R/F273FCD8 2017-02-22  

step 3.新增軟體源到apt
本步驟需要選擇合適的軟體源, 本教程使用的是Ubuntu 16.04 amd64,並且想使用 穩定版 的docker,因此需要這樣做:

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"  

如果你的平臺不是這樣的,請參考官方文件的說明: Docker安裝

step 4.安裝Docker
接下來就可以安裝Docker了.

$ sudo apt-get update  
$ sudo apt-get install docker-ce  

你可以使用一定的方式確保Docker已經正確安裝,比如輸入如下命令:

$ sudo docker run hello-world  

該命令會執行一個新的容器,如果成功,你會看到類似於列印資訊.
至此,Docker已經安裝完畢.

Docker的常用設定

Docker安裝好之後,還需要一定的設定,這些設定可以讓你使用的更加舒適.

使用DaoClould加速

輸入如下命令,即可使用DaoCloud給你的Docker加速:  

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://85f32c34.m.daocloud.io  

更改Docker映象存放的路徑

Docker的映象預設放在 /var/lib/docker 目錄下,當映象越來越多,磁碟空間越發緊張,為此,可以講映象存放路徑改到大容量的磁碟中去.  
用你喜歡的編輯器開啟 /etc/default/docker 檔案,在 DOCKER_OPTS選項寫上你的自定義路徑:  

DOCKER_OPTS="-g $YOUR_PATH"

修改之後,重啟docker:

$ systemctl restart docker  

將使用者新增到docker組,免輸sudo  

此時,Docker已經安裝完畢並且可以正常使用了,但是你每次都需要輸入sudo.  
為了免輸sudo,Docker提供了相關的方法,你可以檢視官方文件使用者新增到docker組

簡單來說就以下幾個步驟:  

$ sudo groupadd docker  
$ sudo usermod -aG docker $USER  

完成之後,你可以試驗以下:  

docker run hello-world  

不出意外,可以執行成功.  

至此,Docker的安裝和配置已經完成.  

接下來就是Tensorflow GPU版本的安裝了.  

Tensorflow GPU版本的安裝    

然後,為了能在docker裡面使用tensorflow gpu版本,你需要安裝nvidia-docker.

安裝好之後,就可以拉取tensorflow-gpu映象,然後啟動容易開始開發了.  

nvidia-docker的安裝  

在此給出Ubuntu 16.04 版本的apt安裝方式:  

# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge -y nvidia-docker

# Add the package repositories
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
  sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/nvidia-docker.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update

# Install nvidia-docker2 and reload the Docker daemon configuration
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

至此,nvidia-docker安裝好了.  

拉取映象並執行  

根據tensorflow的官方文件,可以按照以下命令啟動容器: 

$ nvidia-docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow:latest-gpu bash

但是本人經過實驗並不能成功,忘記是什麼原因導致的了,估計是網路原因. 

解決這個問題也很簡單,tensorflow會上傳映象到docker hub,我們用docker hub裡面拉取映象即可.

這裡可以檢視所有的tensorflow 標籤: tensorflow tags

我們修改命令如下:  

$ nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3 bash

這將啟動一個新的容器,你可以在裡面開始進行開發啦. 

該容器的python版本是3.x的,你可以測試一下,如果你需要安裝py2.x的,將上面命令最後的 latest-gpu-py3 改成 latest-gpu 即可.  

值得注意的是,使用tensorflow gpu版本的容器,必須要用nvidia-docker而不是docker命令 啟動容器,否則會提示找不到 libcuda8.0.so libcudnn6.0.so 等問題!!!

至此,tensorflow gpu版本的開發環境已經配置好了!可以進行開發了!

聯絡我

如果你發現部落格內容有不對或者說的不清楚的地方,請聯絡我,我將第一時間改正,盡我的最大能力將問題講清楚.
我的郵箱: [email protected]

以下是我的公眾號,不定期和大家分享技術文章.如果你覺得我的文章對你有幫助,麻煩關注一下喲:

stupidmedotme

相關推薦

使用Docker搭建tensorflow開發環境

使用Docker搭建tensorflow nmt開發環境 Docker是目前最流行的容器技術. 可以將Docker看成輕量級的虛擬機器,但是它非常輕量. 它像是一艘運輸船,將開發或者運維等等過程中所需要的依賴全部打包到一個映象(image)中, 任何人只需要將

在Win10上使用Anaconda搭建TensorFlow開發環境

以下內容原本是作為畢業設計的一部分的,因此絕對認真和詳細,由於內容過多所以被刪減了,就當福利送給大家了。 2.2 在Windows 10上搭建TensorFlow開發環境 2.2.1 安裝Anaconda5.0.1 在Windows下的安裝十分簡單,不需要

docker搭建LNMP開發環境

win7系統如果安裝使用docker  從官方倉庫下載映象(如下載過慢可換國內倉庫) docker pull mysql:5.7 docker pull php:5.6.38 docker pull nginx:1.15.5

使用 vagrant + docker 搭建 symfony 開發環境

1.安裝 virtualbox 與 vagrant 官網直接下載安裝包,注意 virtualbox 要使用 5.1 版本,vagrant 使用最新版本。 2.下載 vagrant box vagrant box add [name] [映象] vagrant

docker 搭建php開發環境

本地環境: ubuntu15.10 +docker   關於安裝docker ,網上有很多文章,官網也有教程,這裡不再講述. 這裡需要用到的映象有 php:5.6-fpm mysql:latest mongo:latest nginx:1.9.6

Ubuntu基於Docker搭建TensorFlow+Pycharm環境

交代背景:剛剛重灌了ubuntu 18.04,現在立刻裝docker(待編輯不要看) Setup Prerequisites Ubuntu (preferably 16.04 or up) . CentOS is also supported but may need some ex

使用docker搭建敏捷開發環境

首先 輸入 yum install –y docker-io 安裝docker映象 Service docker start 啟動預設註冊的docker服務 通過 ps -ef|grep docker 檢視服務是否成功啟動或使用

在windows環境裡,用Docker搭建Redis開發環境(新書第一個章節)

    大家都知道高併發分散式元件的重要性,而且如果要進大廠,這些技術不可或缺。但這些技術的學習難點在於,大多數專案裡的分散式元件,都是搭建在Linux系統上,在自己的windows機器上很難搭建開發環境,如果無法搭建開發環境,就無法實際操練,而單靠背理論題,是無法通過面試的。  

Windows10系統下使用Docker搭建ClickHouse開發環境

## 前提 隨著現在業務開展,幾個業務系統的資料量開始急劇膨脹。之前使用了關係型資料庫`MySQL`進行了一次資料倉庫的建模,發現了資料量上來後,大量的`JOIN`操作在提高了雲`MySQL`的配置後依然有點吃不消,加之開發了一個基於關係型資料庫設計的標籤服務,日全量標籤資料(無法避免的笛卡爾積)單表超過`

基於 Docker 快速搭建 Oracle 開發環境

docker Oracle要給開發人員搭建 Oracle 測試環境,準備基於 Docker 構建,同時建立一個 Docker 私有倉庫,誰需要就讓他裝一個 Docker,才從這私有倉庫 pull 鏡像即可。 環境如下: CentOS 7 docker-ce-18.03.1.ce-1.el7.cen

docker-1.搭建windows開發環境

搭建本地windows的docker開發環境,主要是用於把執行的程式碼進行打包進入docker,然後上傳到遠端私有倉庫。 劃重點:本地的windows的docker環境一定要比伺服器的docker環境的版本要低,不然,高版本打出來的docker映象在低版本的docker上是出問題的。 安裝條

[step by step]利用docker搭建Tensorflow環境(tensorboard + tensorflow+gpu)

前言 本篇文章搭建環境的作業系統是ubuntu14,windows搭建docker的方式與ubuntu有所區別,win的使用者可以點選原文中的參考連線進行docker的搭建。掛載tensorboard的方法是一樣的,可供大家參考 搭建docker 官方文件 https://do

Win10系統VS2017平臺-Tensorflow開發環境搭建自己的物體識別!(二)

python和tensorflow是超級小白,VS的IDE外面也是很少教程,一步步爬坑不易。接著上文。 假定python已經安裝了,TF也用pip install python已經安裝好了,但是TF是不能直接用了,隨便網上找一段程式碼都會是發現有很多 import *** 的 ***無法找到

Win10系統VS2017平臺-Tensorflow開發環境搭建自己的物體識別!(一)

Tensorflowsharp出來後念念不忘,之前鼓起勇氣想試試,果然資料有限加能力有限,終是放棄了。 思前想後,退而求其次,改用python跑模型,以後用tensorflowsharp+emgucv做識別和分類。 tensorflow(包括裡面的幾個小包)的配置外面漫天飛舞,python也

Nginx+Docker搭建tensorflow環境

環境 系統:CentOS7 pip(python 2.7) 準備工作 採用docker-compose構建映象,其中docker-compose使用pip安裝pip install docker

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

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

在win10下使用docker快速搭建ruby開發環境

containe sta run ica -a set nod 分享 alt docker在windows下發力的時候必將取代各種虛擬機,並改變程序員的開發習慣,或許還會改變infra的工作。 概要: 在Windows下搭建開發環境一直是infra(我)頭疼的事情。為了解

使用Docker快速搭建PHP開發環境

最近有個同事找過來,希望我對在很早之前寫的一個PHP網站上增加一些功能,當時開發使用xampp構建的本地開發環境,但是現在我的膝上型電腦已經更新,沒有當時的開發環境。本著儘量不往電腦上裝無用軟體的原則,想到能不能用Docker來構建本地開發環境,因此本文介紹瞭如何基於Docker來快速構建本地PHP開發環境,

在Windows下搭建Android開發環境

c51 公司 智能 單獨 window 引用 ssp 管理 第一個  隨著移動互聯網的迅速發展,前端的概念已發生很大的變化,已不僅僅局限在網頁端。而Android系統作為智能機市場的老大,作為前端開發工程師,非常有必要了解和學習。但面對眾多學習資料,站在前端開發工程

Python開發入門Windows下搭建python開發環境

python開發入門 Python是一種高級計算機程序設計語言。舉個例子C語言要寫1000行代碼,Java只需要寫100行,而Python可能只要20行。 Python基本概念 Python(英語發音:/?pa?θ?n/), 是一種面向對象、解釋型計算機程序設計語言,由Guido van R