docker images 如何建立自己的原生镜像

docker images 如何建立自己的原生镜像

制作image原生镜像需要使用febootstrap工具,需要注意的是,在centos7系列中,默认的源中不带此包,但是在centos6系列中,该包是默认可用使用的。

在centos6中安装febootstrap

# yum install febootstrap -y
会安装相应的软件包:fakechroot-2.9-24.5.el6_1.1.x86_64.rpm
、 fakechroot-libs-2.9-24.5.el6_1.1.x86_64.rpm
 fakeroot-1.12.2-22.2.el6.x86_64.rpm fakeroot-libs-1.12.2-22.2.el6.x86_64.rpm
 febootstrap-supermin-helper-3.21-4.el6.x86_64.rpm
此时会生成一个命令febootstrap

使用febootstrap工具构建基础镜像:

#febootstrap -i bash -i wget -i yum -i iputils -i iproute centos6.8 centos6.8-doc http://mirrors.163.com/centos/6.8/os/x86_64/

需要注意的是,-i参数表示安装包,centos6.8为image版本,centos6.8-doc为生成镜像的目录,后面的url为镜像源地址。

接下来很快就会构建完成,然后生成一个基础镜像:

# ls centos6.8-doc
bin boot dev etc home lib lib64 media mnt opt proc root sbin selinux srv sys tmp usr var

可以看到生成的centos6.8-doc目录里面已经包含了linux系统的基本文件系统。其实生成这样一个目录就相当于已经是一个基本的linux镜像了,只需要打包并分发到docker主机,并构建成相应的docker image就可以使用了。

使用docker工具导入此镜像:

不论在什么环境,首先进入centos6.8-doc目录,然后将镜像导入:

# cd centos6.8-doc
# tar -c .|docker import - centos:6.8
f86315da0e5ddfdbc2aaf169d7f26cf9e071afb7df04bc207ff0d5b623221c8c
此时,便生成了一个镜像。
# docker images
REPOSITORY              TAG         IMAGE ID      CREATED       VIRTUAL SIZE
centos                6.8         f86315da0e5d    6 seconds ago    392.9 MB

接下来使用这个镜像去创建和使用容器:

# docker run -itd -P centos:6.8 bash
45fc3313c92f8ef8b1fe841da580ca0759b82e54a507c3985dc1c65d6106e12d
# docker ps -a
CONTAINER ID    IMAGE            COMMAND       CREATED       STATUS       PORTS         NAMES
45fc3313c92f    centos:6.8          "bash"       20 seconds ago   Up 19 seconds               desperate_meitner

# docker exec -it desperate_meitner cat /etc/redhat-release
CentOS release 6.8 (Final)
可以看到,当前的image镜像就是当时创建6.8版本的

# docker exec -it desperate_meitner ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
311: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
  link/ether 02:42:0a:00:00:25 brd ff:ff:ff:ff:ff:ff
  inet 10.0.0.37/24 scope global eth0
    valid_lft forever preferred_lft forever
  inet6 fe80::42:aff:fe00:25/64 scope link
    valid_lft forever preferred_lft forever

到此,一个完整的基本的docker images就已经做好了。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • docker images 如何建立自己的原生镜像

    docker images 如何建立自己的原生镜像 制作image原生镜像需要使用febootstrap工具,需要注意的是,在centos7系列中,默认的源中不带此包,但是在centos6系列中,该包是默认可用使用的. 在centos6中安装febootstrap # yum install febootstrap -y 会安装相应的软件包:fakechroot-2.9-24.5.el6_1.1.x86_64.rpm . fakechroot-libs-2.9-24.5.el6_1.1.x86_

  • 详解Docker学习之用commit命令创建镜像

    构建镜像的两种方法: 使用docker commit 命令 使用docker build命令和Dockerfile文件 Dockerfile更抢到.灵活,推荐使用. 一般来说不是真的"创建"新镜像,而是基于一个已有的基础镜像,比如Ubuntu.Fedora等,构建新的镜像而已. 用commit创建镜像 创建Docker账号 共享和发布镜像时构建镜像中重要的环节,可以将镜像推送到Docker Hub或资金的私有Registry中.首先到https://hub.docker.com/acc

  • docker常用命令总结之安装、镜像、容器基本操作

    以下均在centos 7进行的操作 docker安装 yum install -y docker -y:表示在安装过程中按照默认配置进行安装,不需要进行逐步确认 查看已经安装的docker yum list installed | grep docker 删除已经安装的docker yum remove -y docker.x86_64 yum remove -y docker-client.x86_64 yum remove -y docker-common.x86_64 docker服务启动

  • Docker 教程之存出和载入镜像,移除及镜像实现原理

    存出和载入镜像 存出镜像 如果要导出镜像到本地文件,可以使用 docker save 命令. $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu 14.04 c4ff7513909d 5 weeks ago 225.4 MB ... $sudo docker save -o ubuntu_14.04.tar ubuntu:14.04 载入镜像 可以使用 docker load 从导出的本地文件中再导入到

  • Docker 部署Go的两种基础镜像的实现

    一. golang:latest 基础镜像 mkdir gotest touch main.go touch Dockerfile 1. 实例代码 package main import ( "fmt" "log" "net/http" ) func main() { http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) { f

  • springboot docker jenkins 自动化部署并上传镜像的步骤详解

    springboot + docker + jenkins自动化部署项目,jenkins.mysql.redis都是docker运行的,并且没有使用虚拟机,就在阿里云服务器(centos7)运行 1.前期准备工作不说了 2.在项目根目录下新建Dockerfile Dockerfile文件内容为: #基础镜像 FROM openjdk:12 #作者 MAINTAINER demo <demo@qq.com> VOLUME /tmp #指定配置文件,以及jar包在服务器上的路径 ENTRYPOIN

  • 详解docker强制批量删除none的image镜像

    说正题,今天遇到的问题是自己在开发机做坏了几个image镜像,删不了   我想大家也遇到过这样类似的问题  -. 他的名字和tag都是为none,空- 以前看过一个帖子说,给他标记一个tag,就可以干掉,瞎扯- [ruifengyun@bj-buzz-dev01 extractor_docker]$ [ruifengyun@bj-buzz-dev01 extractor_docker]$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL

  • 详解在docker中制作自己的JDK+tomcat镜像

    也许你和我一样,想要自己亲手制作一个热乎乎的镜像,最好自己指定JDK版本和tomcat版本.当然,这是可以的. 根据我的水平,目前有两种办法可以制作我想要的这个镜像.来,我们先说简单点的. 方式一 首先,准备好想要的jdk和tomcat,另外,我们需要创建一个Dockerfile文件,什么,你说你不知道Dockerfile是什么也不会写Dockerfile文件?哦,那也没关系吧,你Ctrl+C就好了.下面展示一个Dockerfile文件的完整内容: FROM ubuntu:14.10 MAINT

  • Docker如何多步构建生成dubbo-admin镜像详解

    前言 Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色.关于注册中心.协议支持.服务监控等内容. Docker是支持多步构建的,对于需要编译源代码的那种构建,多步构建一方面可以获得更小的镜像,另外一方面也不

  • Docker动态添加端口不需要重新建立镜像的方法

    Docker容器在运行期间有时可能会需要修改或者添加暴露的端口,但是有时候运行的容器又不想再另外建立一个新的镜像.这时可以找到docker容器的存放地方,然后直接修改配置文件. 我们的容器都是保存在/var/lib/docker/containers下面. 我的容器是在/var/lib/docker/containers/797f3d0cb82aec7d1c355c7461b5bc5a050c1c0cbbe5d813ede0edad061e6632 每个容器ID对应一个hash_id,可以看到n

随机推荐