前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >构建属于自己的原生docker images

构建属于自己的原生docker images

作者头像
BGBiao
发布2018-02-26 11:49:11
1.1K0
发布2018-02-26 11:49:11
举报
文章被收录于专栏:容器云生态容器云生态

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

  • 在centos6中安装febootstrap
代码语言:javascript
复制
# 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工具构建基础镜像:
代码语言:javascript
复制
#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为镜像源地址。 接下来很快就会构建完成,然后生成一个基础镜像:

代码语言:javascript
复制
# 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目录,然后将镜像导入:
代码语言:javascript
复制
# 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
  • 接下来使用这个镜像去创建和使用容器:
代码语言:javascript
复制
# 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就已经做好了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档