上一次我们讲了如何搭建自己私有的镜像管理仓库,实际上我们使用的依然是别人或者公共的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入门到放弃(四)容器的导入导出的更多相关文章

  1. Docker入门教程(四)Docker Registry

    Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...

  2. Docker 入门 第二部分: 容器

    目录 Docker 入门 第二部分: 容器 先决条件 介绍 你的新开发环境 使用 Dockerfile 定义一个容器 Dockerfile 应用本身 requirements.txt app.py 构 ...

  3. docker入门到放弃

    1.容器简介 Docker是一个开源的应用容器引擎,使用Go语言开发,基于Linux内核的cgroup,namespace,Union FS等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程, ...

  4. hive从入门到放弃(四)——分区与分桶

    今天讲讲分区表和分桶表,前面的文章还没看的可以点击链接: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--DDL数据定义 hive从入门到放弃(三)--DML数据操作 分区 ...

  5. robotium从入门到放弃 四 Robotium常用API

      获取控件 getText() getEditText() getButton() getImage() getImageButton() getEditText() getView() getWe ...

  6. MyBatis从入门到放弃四:一对多关联查询

    前言 上篇学习了一对一关联查询,这篇我们学习一对多关联查询.一对多关联查询关键点则依然是配置resultMap,在resultMap中配置collection属性,别忽略了ofType属性. 搭建开发 ...

  7. Ubuntu菜鸟入门(十四)—— 设置root密码

    sudo su - 输入你的账户的密码 passwd 输入新的root密码 再次输入新的root密码

  8. Go语言从入门到放弃(四)

    前言 有段时间没摸Go语言了,最近B站的Go语言泄露挺火的. 还差的很远呐 学无止境 本章主要介绍一些零碎的小知识点 变更记录 # 19.4.30  起笔 # 19.4.30  增加代码打包步骤 正文 ...

  9. docker容器的导入导出

    导出容器docker export 导出容器快照到本地文件$ sudo docker ps -aCONTAINER ID        IMAGE               COMMAND      ...

随机推荐

  1. Power BI十大视觉效果,知多少?

    Power BI十大视觉效果: 图表滑块 响应式布局 一键更改方差计算 一键排序 我们的最爱:小倍数! 瀑布图中的轴断裂 层次表(完全响应) HICHERT博士的IBCS®原生支持 分段图表 - 可视 ...

  2. Eclipse 通过JPA自动生成注解实体

    hibernate是JPA最常用的实现之一,而且hiberante自身也对注释语法进行了支持.现在再不用去看那一堆堆的XML映射了.而且eclipse还提供了从数据库直接生成Entity Class的 ...

  3. 推荐系统-05-Spark电影推荐、评估与部署

    一.新建scala项目 二.构造程序 代码如下 package xyz.pl8 import java.io.File import org.apache.log4j.{Level, Logger} ...

  4. BF字符串匹配算法

    Brute Force算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符: 若不相等,则比较S的第二个 ...

  5. 配置apache-maven-3.6.0时所遇到的坑(一)

    在命令行窗口中输入:mvn  -v    或 直接    mvn    时报错:“错误: 找不到或无法加载主类 org.codehaus.plexus.classworlds.launcher.Lau ...

  6. 实验吧—Web——WP之 貌似有点难

    其实这道题并不难,只要会看一点PHP语句,会用BP抓包,改包就好了 打开解题链接: 提示有:PHP代码审计,并且有一个:View the source code 的按钮 我们点击打开 打开后发现是一段 ...

  7. javascrpit的理解

    1.什么是Javascrpt? 轻量级 .编程语言 HTML+css -->设计 参数的默认值设置 函数的闭包: 浏览器加载整个页面的过程 浏览器:多线程 1.js引擎 2.UI渲染 3.事件线 ...

  8. 求连续数字的和------------------------------用while的算法思想

    前端代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.as ...

  9. Go Example--指针

    package main import ( "fmt" ) func zeroval(ival int) { ival = 0 } func zeroptr(iptr *int) ...

  10. 依赖注入的方式测试ArrayList和LinkedList的效率(对依赖注入的再次理解)

    9/20 号再进行学习 在C++中,main函数尽可能的简单,只要调用子函数的一句话就实现了功能. java开发中,controller就相同于是main函数,其他类的方法不在本类中时候, 1.可以用 ...