Docker Support Tensorflow start

作者: it_zzy | 来源:发表于2018-08-07 17:36 被阅读86次

    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
    
    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
    

    相关文章

      网友评论

      • 甘意:感谢大牛的分享!!!

      本文标题:Docker Support Tensorflow start

      本文链接:https://www.haomeiwen.com/subject/fbvavftx.html