docker初级操作
本地机器配置不给力,要租用阿里云的HPC服务器,怎奈阿里云只提供centos操作系统,而我的所有配置都是基于ubuntu系统,所以为了能够解决系统不统一的矛盾,研究了一下docker,可以通过简单的docker技术解决这个尴尬的问题。为了之后再查找操作,所以把目前用到的docker初级操作记录下来,将来再用的话忘了也好查找。首先在机器上安装好docker,具体可参考docker的官方文档。
#从hub上pull一个镜像下来
sudo docker pull ubuntu:14.04
#运行镜像,实例化为容器
sudo docker run -i -t ubuntu:14.04 /bin/bash
#在实例化的容器里操作,修改原始镜像,比如在home下建一个test.cpp文件
cd home
vi test.cpp
#修改完容器后exit退出,然后commit保存修改到镜像中
sudo docker commit -m "Your Info of this modification" -a "Info of user" ID(也就是实例化容器时的用户ID) new_name(commit之后的新镜像名)
#先创建一个dockerhub账号并登录docker账号
sudo docker login,然后输入用户名密码
#将修改的镜像push到docker hub,首先要修改一下镜像的名字,比如刚刚修改完的镜像名字为ubuntu,tag为14.04
sudo docker tag ubuntu(原镜像名字):14.04(原镜像tag) xhq11(你的docker hub用户名)/ubuntu(传到docker hub上的新名字):14.04(传到docker hub上的新tag)
#执行push动作,然后就可以在网页的docker hub上看到push上来的镜像了
sudo docker push xhq11/ubuntu:14.04(上行代码修改后的名字和tag)
#下载之前上传的镜像到本地,首先要保证本机上没有要pull下来的镜像,有的话要先删除才能pull下来
sudo docker pull xhq11/ubuntu:14.04
至此就完成了docker的初级操作,可以通过docker技术来解决很多轻量级的环境部署问题。比如可以在ubuntu环境下完成相关的软件安装与环境配置并将其打包为一个镜像上传,再在centos系统下把这个镜像pull下来运行,就可以在centos系统的机器上继续之前ubuntu环境下的工作,而不需要重新配置一遍环境,也就解决了开头说过的问题。
最后还是要吐槽一下阿里云。现在的云产品居然还有只提供centos一种系统的,linux系统那么多,只有一个centos是什么意思。而且还这么贵,一年的租金都可以买一套物理机了,赚钱还是马云爸爸会赚啊。
从主机上拷贝文件到容器:
首先运行一个容器,然后在主机上“sudo docker ps”查看运行的该容器ID,另起一个新的terminal,输入“sudo docker cp path-to-file-in-the-host ID:path-to-file-in-the-container”,例如将主机桌面的上的test.py文件拷贝至容器的/home目录,则"sudo docker cp /home/xhq11/desktop/test.py ID:/home"。拷贝后退出容器,执行上述commit操作修改镜像。
从容器中拷贝文件到主机,sudo cp ID:path-to-file-in-the-container path-to-file-in-the-host。
updated 2017/3/22:
利用docker发布基于ubuntu的ssd-caffe环境配置镜像,供其他host端使用。
如前所述,老夫之所以会来搞什么什么docker,就是因为本地机器配置不给力(装了titan x也忍受不了动辄三四十个小时的训练)决定租用阿里云的hpc产品,怎奈阿里的hpc只提供centos系统,所以要解决的现实问题是:在centos OS中用ubuntu环境下的配置来训练模型。为解决跨OS问题,决定通过docker来解决。所以本文的关键在于:通过docker来创建ubuntu下ssd-caffe的环境。
过程其实蛮简单的。由于镜像需要调用host机的nvidia显卡,所以要安装nvidia-docker(https://github.com/NVIDIA/nvidia-docker),然后去docker hub上pull一个带支持gpu的caffe镜像下来放在host机上。只是实例化容器的时候稍微有点不同,之前用docker daemon来运行容器,现在由于要通过nvidia-docker来调用host端gpu,所以运行时daemon用nvidia-docker。如nvidia-docker run -it XXXX:tag即可。进去之后去Liuwei的github上把caffe-ssd下载下来拷贝到容器中去,按照在host端一样的编译安装过程去操作就可以了,最后退出容器的时候commit一下镜像就搞定了,然后push到docker hub上去就可以发布了,蛮easy 的。
docker初级操作相关推荐
- python 对docker的操作 :docker-py教程
python 对docker的操作 :docker-py教程 见官方文档: https://docker-py.readthedocs.io/en/latest/
- Docker 之 Docker基础操作
第1章 Docker基础操作 1.1 常用的命令 0) 安装Docker 环境 yum -y install docker 1) 指定 IP,DNS 网络位启动Docker容器 a) docke ...
- Docker初级选手(一)
Docker初级选手(一) 卸载 1.卸载docker包 yum remove docker-ce 2.因为主机上的图像.容器.卷.自定义配置不会自动删除,所以需要手动删除相关文件 rm -rf /v ...
- Docker 容器操作
容器是 Docker 又一核心概念.简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境.对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用. ...
- 天池数据竞赛docker提交操作学习
天池数据竞赛docker提交操作学习 由于最近天池的比赛都要求使用docker来提交结果,所以在此记录一下docker提交到天池的整个流程. 目前正在做的,全球人工智能技术创新大赛[热身赛二]比赛链接 ...
- docker镜像操作
docker镜像操作 实验环境 操作系统:CentOS Linux release 7.3.1611 (Core)docker版本:17.11.0-ce 镜像操作 列出镜像 查看已经下载下来的镜像: ...
- Docker 容器操作 1
2019独角兽企业重金招聘Python工程师标准>>> 容器是 Docker 又一核心概念.简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境.对应的,虚拟机可以理解为模 ...
- Docker镜像操作相关
Docker镜像操作相关 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub[ https://hub.docker.c ...
- 【保姆级教程】Docker基础操作篇-Dokerfile(含源码)
Docker系列文章: 你好!Docker[概念+源码+保姆式教程] [保姆级教程]Docker进阶操作篇-Compose(含源码) Docker常用命令 [保姆级教程]VMware+CentOS 7 ...
最新文章
- 李飞飞团队CVPR论文:让AI识别语义空间关系(附论文、实现代码)
- docker privileged 权限 参数
- ASP字符串函数大全
- HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令
- java操作redis简单学习3
- hibernate注解的测试
- 小波分析理论与matlabr2007实现_HHT变换基本理论
- java多组List所有的排列组合
- 一步一步手绘Spring AOP运行时序图(Spring AOP 源码分析)
- ApsaraDB for SQL Server 混合云场景一种解决方案
- Android程序设置软件图标
- nginx gif伪装php,nginx空白图片(empty_gif模块)
- 2015到3020计算机参考文献,同等学力相关论文范文素材,与计算机网络参考文献2016年相关硕士毕业论文...
- 浏览器JSON的插件(JSON-handle)使用问题
- 期刊类文章左下角添加横线的方法
- 租房软件需要的是简单易用
- 合作创新,携手共赢 共筑坚实数字底座
- 如何快速梳理领域文献
- 哈工大SCIR倾力打造NLP新书,详解预训练语言模型
- JScript.NET或者JScript是什么?