Docker Support Tensorflow start

Docker Support Tensorflow start

Tensoflow 容器启动

启动Tensorflow容器还是比较简单的,根据docker hub提供的方法进行容器启动即可

1.搜索镜像
root@es2:~# docker search tensorflow
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
tensorflow/tensorflow             Official docker images for deep learning f...   1001
jupyter/tensorflow-notebook       Jupyter Notebook Scientific Python Stack w...   74
xblaster/tensorflow-jupyter       Dockerized Jupyter with tensorflow              50                   [OK]
romilly/rpi-docker-tensorflow     Tensorflow and Jupyter running in docker c...   19
floydhub/tensorflow               tensorflow                                      12                   [OK]
bitnami/tensorflow-serving        Bitnami Docker Image for TensorFlow Serving     11                   [OK]
tensorflow/serving                Official images for TensorFlow Serving (ht...   8

2.下载镜像
root@es2:~# docker pull tensorflow/tensorflow
Using default tag: latest
latest: Pulling from tensorflow/tensorflow
b234f539f7a1: Extracting [===========================>                       ]  23.4 MB/43.12 MB
55172d420b43: Download complete
5ba5bbeb6b91: Download complete
43ae2841ad7a: Download complete
f6c9c6de4190: Download complete
5624105f79a2: Downloading [======>                                            ] 17.12 MB/142.4 MB
1cbdffd12405: Download complete

3.启动容器
docker run -d --name tensorflow_test -p 18888:8888 tensorflow/tensorflow
参数解析:
-d 后台运行
--name 给容器起个名字
-p 映射到本地的端口(本地端口:容器端口)

登录jupyter

1.找到登录token
jupyter登录需要传入token,获取方式如下:

docker ps
root@es2:~# docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                               NAMES
17d804ae12cc        tensorflow/tensorflow    "/run_jupyter.sh -..."   58 seconds ago      Up 58 seconds       6006/tcp, 0.0.0.0:18888->8888/tcp   tensorflow_test
d939ac70635a        google/cadvisor:latest   "/usr/bin/cadvisor..."   5 days ago          Up 5 days           0.0.0.0:8080->8080/tcp              cadvisor
b9f4b7b1295c        registry:2               "/entrypoint.sh /e..."   6 days ago          Up 6 days           0.0.0.0:5000->5000/tcp              registry2

找到要启动容器的ID
docker logs 17d804ae12cc
root@es2:~# docker logs 17d804ae12cc
[I 08:13:35.956 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[W 08:13:35.972 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 08:13:35.980 NotebookApp] Serving notebooks from local directory: /notebooks
[I 08:13:35.980 NotebookApp] 0 active kernels
[I 08:13:35.980 NotebookApp] The Jupyter Notebook is running at:
[I 08:13:35.980 NotebookApp] http://17d804ae12cc:8888/?token=4e392a15850c82958dd68a7e2eca205ae112740ce2ceb437
[I 08:13:35.980 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 08:13:35.980 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://17d804ae12cc:8888/?token=4e392a15850c82958dd68a7e2eca205ae112740ce2ceb437&token=4e392a15850c82958dd68a7e2eca205ae112740ce2ceb437

找到这条日志后,然后替换ip与端口
http://宿主机:映射端口/?token=4e392a15850c82958dd68a7e2eca205ae112740ce2ceb437

《Docker Support Tensorflow start》 Jupyter.png

容器安装Python3 Anaconda3

如果需要环境中支持Anaconda需要手动去容器安装

1.登录容器
docker exec -it 17d804ae12cc  bash
root@es2:~# docker exec -it 17d804ae12cc  bash
root@17d804ae12cc:/notebooks#

2.更新apt-get安装wget
apt-get update
root@17d804ae12cc:/notebooks# apt-get update
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
...
apt-get install wget
root@17d804ae12cc:/notebooks# apt-get install wget
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
wget
...

3.下载Anaconda3
root@17d804ae12cc:/notebooks# wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
--2018-08-07 08:35:17--  https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
Resolving repo.anaconda.com (repo.anaconda.com)... 104.17.111.77, 104.17.110.77, 104.17.107.77, ...
Connecting to repo.anaconda.com (repo.anaconda.com)|104.17.111.77|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 651745206 (622M) [application/x-sh]
Saving to: 'Anaconda3-5.2.0-Linux-x86_64.sh'

Anaconda3-5.2.0-Linux-x86_64.sh            15%[===========>
...
Saving to: 'Anaconda3-5.2.0-Linux-x86_64.sh'

Anaconda3-5.2.0-Linux-x86_64.sh           100%[==================================================================================>] 621.55M  12.3MB/s    in 49s

2018-08-07 08:36:07 (12.6 MB/s) - 'Anaconda3-5.2.0-Linux-x86_64.sh' saved [651745206/651745206]

4.运行安装
bash Anaconda3-5.2.0-Linux-x86_64.sh
root@17d804ae12cc:/notebooks# bash Anaconda3-5.2.0-Linux-x86_64.sh

Welcome to Anaconda3 5.2.0

In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>>

5.jupyter notebook加载pytho3内核
ipython kernel install --name python3
root@17d804ae12cc:/notebooks# ipython kernel install --name python3
Installed kernelspec python3 in /usr/local/share/jupyter/kernels/python3

保存镜像

安装了Anaconda3的容器,想在别的机器上使用,而不想再次安装的话,可以将已经安装的容器保存成镜像

1.创建镜像
docker commit  -a "test" -m "install Anaconda3-5.2.0"  17d804ae12cc tensorflow:1.0.0
如此就把容器保存成了加载中的镜像,其中TAG为了区分同名镜像的不同版本
语法 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
说明:
 -a:提交的镜像作者
 -c:使用Dockerfile指令来创建镜像
 -m:提交时的说明文字
 -p:在commit时,将容器暂停

root@es2:~# docker commit  -a "test" -m "install Anaconda3-5.2.0"  17d804ae12cc tensorflow:1.0.0
sha256:8ff9c17845442d36f0fe43fbc65fa6cda6aef7a7bd5d69455eaf232b9fc6ceaf

- 查看镜像
root@es2:~# docker images
REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
tensorflow                                 1.0.0               8ff9c1784544        2 minutes ago       5.22 GB
es2:5000/itzzy/eureka-server-1.0.0         latest              3c8d61cfde11        10 days ago         723 MB
itmuch/eureka-server-1.0.0                 latest              3c8d61cfde11        10 days ago         723 MB
itzzy/eureka-server-1.0.0                  latest              3c8d61cfde11        10 days ago         723 MB
localhost:5000/itzzy/eureka-server-1.0.0   latest              3c8d61cfde11        10 days ago         723 MB
ubuntu                                     16.04               7aa3602ab41e        11 days ago         115 MB
tensorflow/tensorflow                      latest              caab7ec02690        3 weeks ago         1.25 GB

2.保存镜像
docker save -o tensorflow_Anaconda3-5.2.0.tar  tensorflow:1.0.0
可以看到生成了tar文件
-rw-------  1 root root 5340353536 Aug  7 17:19 tensorflow_Anaconda3-5.2.0.tar

3.其他主机加载镜像
只需要把你保存的镜像传过去load 一下就好了
docker load -i tensorflow_Anaconda3-5.2.0.tar
    原文作者:it_zzy
    原文地址: https://www.jianshu.com/p/1cbf058a063d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞