docker的安装和入门见官网教程:http://docs.docker.com/

下面是自制docker basic image的步骤,以ubuntu为例。

1. 安装debootstrap

apt-get install debootstrap

2. 创建基本系统

debootstrap --arch=i386 trusty /home/thm/docker/min_os/ubuntu_i386/ http://archive.ubuntu.com/ubuntu

arch后跟的是硬件架构名称,可以是:amd64, armel, armhf, i386, ia64, mips, mipsel, powerpc, s390, s390x, sparc等。

"/home/thm/docker/min_os/ubuntu_i386/"是我存放ubuntu文件系统的地方,此目录可以根据实际情况修改。

3. 创建文件系统镜像

cd /home/thm/docker/min_os/ubuntu_i386/

tar -c . | docker import - tanghuimin0713/ubuntu_i386

完成之后通过docker images命令可以看到刚才创建的image文件

root@ubuntu:/home/thm/docker/min_os/ubuntu_i386# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
tanghuimin0713/ubuntu_i386 latest ee57f53fe012 About a minute ago 216.8 MB
ubuntu 14.04. c4ff7513909d days ago 225.4 MB
ubuntu latest c4ff7513909d days ago 225.4 MB
ubuntu 14.04 c4ff7513909d days ago 225.4 MB
ubuntu trusty c4ff7513909d days ago 225.4 MB

4. 修改basic image的tag

docker tag ee57f53fe012 tanghuimin0713/ubuntu_i386:14.04

ee57f53fe012是image id,tanghuimin0713/ubuntu_i386:14.04是respository名:tag名

root@ubuntu:/home/thm/docker/min_os/ubuntu_i386# docker tag ee57f53fe012 tanghuimin0713/ubuntu_i386:14.04
root@ubuntu:/home/thm/docker/min_os/ubuntu_i386#
root@ubuntu:/home/thm/docker/min_os/ubuntu_i386# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
tanghuimin0713/ubuntu_i386 latest ee57f53fe012 6 minutes ago 216.8 MB
tanghuimin0713/ubuntu_i386 14.04 ee57f53fe012 6 minutes ago 216.8 MB
ubuntu latest c4ff7513909d days ago 225.4 MB
ubuntu 14.04 c4ff7513909d days ago 225.4 MB
ubuntu 14.04. c4ff7513909d days ago 225.4 MB
ubuntu trusty c4ff7513909d days ago 225.4 MB

5. 将新建的basic image上传到docker hub中共享

docker push tanghuimin0713/ubuntu_i386

root@ubuntu:/home/thm/docker/min_os/ubuntu_i386# docker push tanghuimin0713/ubuntu_i386
The push refers to a repository [tanghuimin0713/ubuntu_i386] (len: )
Sending image list
Pushing repository tanghuimin0713/ubuntu_i386 ( tags)
ee57f53fe012: Pushing [======================================> ] 176.8 MB/232.1 MB 4m0s

备注:要想把自制的image文件上传到docker hub中与全世界的开发者共享需要先在docker hub中注册一个帐号,上传命令是docker push 用户名/image名。下图是我在docker hub的账户界面:

自制docker basic image的更多相关文章

  1. 土法搞docker系列之自制docker的graph driver vdisk

    写在最前 偶然整理,翻出来14年刚开始学docker的时候的好多资料.当时docker刚刚进入国内,还有很多的问题.当时我们的思考方式很简单,docker确实是个好的工具,虽然还不成熟.但是不能因为短 ...

  2. CentOS下febootstrap自制Docker的CentOS6.6和7.1 Docker镜像

    docker image centos febootstrap CentOS 6.6和7.1 Docker自制CentOS镜像 安装: ? 1 yum -y install febootstrap 添 ...

  3. Docker Basic

    1.简介 last 1.简介 1.1目的?一次编译.到处运行: 1.2.是什么? 实现[运行环境和配置文件的]软件容器,方便[持续集成]实现[整体发布]的容器虚拟化技术: 概括:整体发布的[容器虚拟化 ...

  4. Docker Day1 & 2

    1. Docker Basic 安装docker(在/etc/selinux/config文件中设置selinux=disabled,否则安装时会报错) curl -ssL http://get.do ...

  5. vagrant特性——基于docker开发环境(docker和vagrant的结合)-1-基本使用

    Docker vagrant提供了使用Docker作为provider(其他的provider有virtualBox.VMware\hyper-V等)的开箱即用支持.这允许你的开发环境由Docker容 ...

  6. docker开发_在basic image的基础上创建自定义的image

    方法一:docker commit 1. 跑一个basic image,docker新建了一个容器 root@ubuntu:/home/thm/docker/test# docker run -i - ...

  7. Basic concepts of docker/kubernete/kata-container

    Kubereters An open-source system for automating deployment, scaling, and management of containerized ...

  8. Docker自制CentOS镜像

    系统环境:CentOS 7.3 将yum源切换到阿里源 可以直接写成一个脚本 #!/bin/sh mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos ...

  9. docker 自制alpine-lnp镜像

    简单粗暴点吧 jenkins 镜像下载:docker pull jenkins:alpine dockfile 原地址:https://gist.github.com/phith0n/373cc078 ...

随机推荐

  1. git 版本库回滚(转载)

    From:http://www.cnblogs.com/qualitysong/archive/2012/11/27/2791486.html From: http://www.tech126.com ...

  2. 不容错过错的xcode 插件 转至于cocoachina

    古人云“工欲善其事必先利其器”,打造一个强大的开发环境,是立即提升自身战斗力的绝佳途径!以下是搜集的一些有力的XCode插件.   1.全能搜索家CodePilot 2.0 你要找的是文件?是文件夹? ...

  3. python 批量重命名文件后缀

    # batch_file_rename.py # Created: 6th August 2012 ''' This will batch rename a group of files in a g ...

  4. linux内核神级list

    源码: #ifndef _LINUX_LIST_H #define _LINUX_LIST_H /* * Simple doubly linked list implementation. * * S ...

  5. python实现线程池

    线程池 简单线程池 import queue import threading import time class ThreadPool(object): #创建线程池类 def __init__(s ...

  6. CentOS 的网络配置

    1, ifcfg-ethX, 设置对应网口的IP等信息, 比如第一个网口, 那么vim /etc/sysconfig/network-scripts/ifcfg-eth0,配置例子: DEVICE=& ...

  7. [POJ 2586] Y2K Accounting Bug (贪心)

    题目链接:http://poj.org/problem?id=2586 题目大意:(真难读懂啊)给你两个数,s,d,意思是MS公司每个月可能赚钱,也可能赔钱,如果赚钱的话,就是赚s元,如果赔钱的话,就 ...

  8. java网格布局管理器

    public class GirdLayoutPosition extends JFrame{    public GirdLayoutPosition()    {        Container ...

  9. Bootstrap栅格系统

    栅格系统分为两种:默认栅格系统 row,流式栅格系统 row-fluid. row 默认栅格系统:即指定了每个栅格的宽度为60px,间距为20px.共有12个栅格.总宽度为940px; 即12个栅格= ...

  10. Android系统下的动态Dex加载

    1 问题在Android系统中,一个App的所有代码都在一个Dex文件里面.Dex是一个类似Jar的存储了多有Java编译字节码的归档文件.因为Android系统使用Dalvik虚拟机,所以需要把使用 ...