ubuntu-docker入门到放弃(四)容器的导入导出
上一次我们讲了如何搭建自己私有的镜像管理仓库,实际上我们使用的依然是别人或者公共的image,今天就来说说如何将自己定制化的images上传到自己的私有仓库中,以供符合自己业务场景的项目来使用,如:我使用docker基于ubuntu 14.04系统搭建了一套ruby的环境,以后直接使用。
先来看看我们在运行的容器:
#docker ps

接下来我们在nginx服务器上安装一个ruby环境:
进入容器内:
#docker exec -it e96a98d5902c /bin/bash
#apt-get update
#dpkg -l | grep ruby #查看是否安装了ruby
#apt-get install ruby
已经安装完了,查看一下:
#ruby -v
ruby 2.3.3p222 (2016-11-21) [x86_64-linux-gnu]
接下来我们把这个容器导出来,制作成镜像,上传到我们的私有仓库中,以后需要ruby环境就不需要安装了,直接拉镜像下来跑起来就可以了:
导出容器:
#docker export e96a98d5902c >ubuntu14_ruby2.tar.gz
导入到本地镜像:
#docker import ubuntu14_ruby2.tar.gz
sha256:fd2e33845352e808b3b3bd90c47afa067b5542663c518fa2cef5e1f3cc912e3
查看本地镜像:
#docker images

这个没有tag的就是我们刚刚导入的,现在我们给他打一个tag:
#docker tag fd2e33845352 ubuntu14_ruby2:2.2
#docker images

好了,接下来我们把这个本地镜像上传到私有仓库中:
#docker tag ubuntu14_ruby2:2.2 10.30.234.212:5000/ubuntu14_ruby
#docker push 10.30.234.212:5000/ubuntu14_ruby
接下来看看仓库中的镜像:
#curl http://10.30.234.212:5000/v2/ubuntu14_ruby/tags/list
{"name":"ubuntu14_ruby","tags":["latest"]}
已经有了,接下来我们把本地ruby环境的容器及image删除:
先停止容器:
#docker stop e96a98d5902c
在删除容器:
#docker rm e96a98d5902c
查看:
#docker ps

接下来删除image:
#docker rmi 10.30.234.212:5000/ubuntu14_ruby
#docker rmi ubuntu14_ruby2:2.2
从仓库下载镜像来启动ruby环境:
#docker pull 10.30.234.212:5000/ubuntu14_ruby
#docker images

用这个image启动一个容器:
#docker run -dit --name test_ruby 10.30.234.212:5000/ubuntu14_ruby /bin/bash
#docker ps

容器已经起来了,让我们看看ruby环境还在不在:
#docker exec -it 12f5cefa90d9 /bin/bash
#ruby -v
ruby 2.3.3p222 (2016-11-21) [x86_64-linux-gnu]
环境依然在,成功~
ubuntu-docker入门到放弃(四)容器的导入导出的更多相关文章
- Docker入门教程(四)Docker Registry
Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...
- Docker 入门 第二部分: 容器
目录 Docker 入门 第二部分: 容器 先决条件 介绍 你的新开发环境 使用 Dockerfile 定义一个容器 Dockerfile 应用本身 requirements.txt app.py 构 ...
- docker入门到放弃
1.容器简介 Docker是一个开源的应用容器引擎,使用Go语言开发,基于Linux内核的cgroup,namespace,Union FS等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程, ...
- hive从入门到放弃(四)——分区与分桶
今天讲讲分区表和分桶表,前面的文章还没看的可以点击链接: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--DDL数据定义 hive从入门到放弃(三)--DML数据操作 分区 ...
- robotium从入门到放弃 四 Robotium常用API
获取控件 getText() getEditText() getButton() getImage() getImageButton() getEditText() getView() getWe ...
- MyBatis从入门到放弃四:一对多关联查询
前言 上篇学习了一对一关联查询,这篇我们学习一对多关联查询.一对多关联查询关键点则依然是配置resultMap,在resultMap中配置collection属性,别忽略了ofType属性. 搭建开发 ...
- Ubuntu菜鸟入门(十四)—— 设置root密码
sudo su - 输入你的账户的密码 passwd 输入新的root密码 再次输入新的root密码
- Go语言从入门到放弃(四)
前言 有段时间没摸Go语言了,最近B站的Go语言泄露挺火的. 还差的很远呐 学无止境 本章主要介绍一些零碎的小知识点 变更记录 # 19.4.30 起笔 # 19.4.30 增加代码打包步骤 正文 ...
- docker容器的导入导出
导出容器docker export 导出容器快照到本地文件$ sudo docker ps -aCONTAINER ID IMAGE COMMAND ...
随机推荐
- 中国网建提供的SMS短信发送
一个简单的发送短信的小demo 第一步: 兄弟们,首先你们去中国网建的官网去注册一个账户:网址http://sms.webchinese.cn/reg.shtml 第二步: 注册完成之后会有免费的测试 ...
- make命令回显Makefile执行脚本命令
/********************************************************************** * make命令回显Makefile执行脚本命令 * 说 ...
- MySQL最基本的DML语句
一.什么叫DML? DML(Data Manipulation Language):数据操作语言.主要操作数据表中的数据,使用DML可以完成以后三件事: 插入数据 修改数据 查询数据 二.具体的语句操 ...
- POJ2689 Prime Distance(数论:素数筛选模板)
题目链接:传送门 题目: Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: Accepted: Des ...
- bootstrap中的container与container-fluid的用法
使用过bootstrap的同学都知道,其container与container-fluid都是设置文本居中,但两者还是有很大的区别. 官方给出的解释是: .container 类用于固定宽度并支持响应 ...
- CodeChef KILLKTH Killjee and k-th letter
题意 dt { font-weight: bold; margin-top: 20px; padding-left: 35px; } dd { box-shadow: 3px 3px 6px #888 ...
- react-redux 的使用
1 安装react-redux: npm install --save react-redux 2.之前使用redux的store.subscribe监听 store的状态改变,通过store.get ...
- Vue的路由动态重定向和导航守卫
一.重定向 重定向也是通过 routes 配置来完成,下面例子是从 /a 重定向到 /b: const router = new VueRouter({ routes: [ { path: '/a', ...
- skipper lua 添加luarocks 包管理
skipper 支持基于lua 的script 扩展,同时设计比较方便的filter模型,让我们可以方便 进行request.response的扩展,结合lua 社区的包我们可以快速的进行新功能的开发 ...
- 后端程序猿怎能不会的linux命令
(图片超清,可放大网页查看) 来源 https://zhuanlan.zhihu.com/p/28674639