深度学习21天实战实战caffe学习笔记<19>

来源:互联网 发布:label mx标签打印软件 编辑:程序博客网 时间:2024/06/05 07:25

Caffe的迁移和部署

Why:

(开发和部署)离线训练、在线识别

Docker:

开源的应用容器引擎,沙箱机制,自动化运维工具,实现开发测试环境与生产部署环境的平滑迁移。

Docker与传统的虚拟机(如VMware,VirtualBox)很相似,但更具优势:

  • 1、创建和销毁秒级完成,启动速度飞快;
  • 2、体积小,可迁移到任何流行的Linux机器上;
  • 3、占用系统资源极低;
  • 4、可自动化部署、集群管理

Docker 两个主要部件:

  • Docker: 开源的容器虚拟化平台
  • Docker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平台 -- Docker Hub

基本概念:

  • Docker 守护进程

Docker 守护进程运行在一台主机上。用户并不直接和守护进程进行交互,而是通过 Docker 客户端间接和其通信。

  • Docker 客户端

Docker 客户端,实际上是 docker 的二进制程序,是主要的用户与 Docker 交互方式。它接收用户指令并且与背后的 Docker 守护进程通信,如此来回往复。

  • Docker 内部

  主要三种部件:


镜像Image:包含应用程序和其运行时依赖环境的只读文件,是构建容器的模板,通过镜像可以构造出很多相互独立单运行环境一样的容器;

容器Container:基于镜像生成并动态运行的相互隔离的实例

镜像仓库Docker Hub:集中存储、管理镜像的服务


安装:

Ubuntu14.04环境下:

# apt-get update#apt-get -y install docker.io
检查Docker服务的状态:

#service docker.io status
自启动服务:

#update-rc.d docker.io defaults
添加Docker用户组:

默认情况只有root可以使用权限,创建docker用户组将使用docker的用户添加进来,避免多人同时使用root用户。

#usermod -aG docker your_user_name
测试安装:

#docker run hello-world

入门:

0、查看docker信息:

$ docker

1、显示Docker信息

$docker vision  #显示版本信息$docker info  #使用状态
2、下载Docker镜像

$docker pull ubuntu  #从docker注册服务器的软件仓库下载一个现成的docker镜像
$docker images    #查看系统中已经有的镜像
3、从镜像创建Docker容器

$docker run  -i  -t  ubuntu/bin/bash    #创建一个活动的容器


-i : 交互模式,输入输出在控制台进行;-d  容器启动后进入后台工作,非交互模式
-t :为创建的容器分配一个伪终端tty

ubuntu:创建容器的镜像名称,可以用镜像ID代替

/bin/bash :在新建的容器中运行的命令,任意linux命令

:  Ctrl+P--->Ctrl+Q返回宿主机终端会话

  $docker ps 查看当前活动的容器

 $docker attach 610  #重新与之前的容器建立连接(610是CONTAIN ID的钱3个字符)

4、从容器创建Docker镜像

(1)、从运行的容器创建; 

$docker commit -m "Test a change" 610 ubuntu:test_change
ubuntu:test_change为新镜像的名字ID(679)

(2)、编写Docker文件创建镜像;
5、上传Docker镜像

#注册Docker Hub账号,登录$docker login#推送镜像到Hub$docker tag 610 zxx/mastercaffe :test_ubuntu_change$docker push  zxx/mastercaffe :test_ubuntu_change  #push与pull作用相反

进阶:

1、阿里云Docker Hub管理镜像

https://dev.aliyun.com/search.html

具体步骤可以上网查。

2、其他国内云平台

  • DaoCloud https://www.daocloud.io/
  • 网易蜂巢 https://c.163.com/  提供镜像仓库、容器云服务
  • DaoCloud:提供镜像仓库、应用管理、应用编排、数据卷、集群管理,并且免费使用1~2个容器,或者加入自己的服务器进行管理。
  • 百度BAE:提供弹性、分布式的应用托管服务,帮助开发者一站式轻松开发并部署应用程序(Web应用及移动应用)。每月花几元钱就可以使用容器服务部署应用程序。
  • 灵雀云:容器云平台,提供企业级应用集成、交付、运维的一站式解决方案。

不是专门研究这个的所以不花费太多时间,了解就好

参考资料:

http://blog.csdn.net/zmx729618/article/details/72930474
http://blog.csdn.net/u012562943/article/category/6048991



原创粉丝点击