http://ask.loongnix.org/?/article/82

在按照本文的方式制作镜像之前,首先要先创建基础镜像fedora21-base,可以参考:
http://ask.loongnix.org/?/article/81 

创建feodra21-tools镜像的必要性
 
在已经创建的feodra21-base镜像中不包含常用命令,如:ifconfig、w3m、wget、vim等命令。当在feodra21-base容器的命令行中输入这些命令时,会有错误提示,如下:

[root@c6f646635bf1 /]# ifconfig
bash: ifconfig: command not found
[root@c6f646635bf1 /]# w3m
bash: w3m: command not found
[root@c6f646635bf1 /]# wget
bash: wget: command not found
[root@c6f646635bf1 /]# vim
bash: vim: command not found

所以,还需要在创建一个只包含基本命令的镜像。
 实验环境
 
本文的实验都是在龙芯3A3000机器上。
操作系统是loongnix(Fedora21)20170726版本,
docker是1.12.2版本。
 
镜像内容
 
feodra21-tools镜像中包含一些常用命令,如:ifconfig、w3m、wget、vim
 
制作镜像前期准备
 
本文将演示使用Dockerfile如何创建镜像,Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。
在宿主机下 /root/image 目录下创建一个 tools 文件夹,将Dockerfile和run.sh文件存到 tools 文件夹内,具体步骤为:

# mkdir /root/image/tools  -p
# cd /root/image/tools/
# vi run.sh

编写run.sh文件,如下代码所示:

#!/bin/bashexport LC_ALL=zh_CN.UTF-8
export LANG=zh_CN.UTF-8/bin/bash

编写Dockerfile文件,如下代码所示:

# vi Dockerfile以下是Dockerfile包含的内容:FROM fedora21-base:21RUN yum install -y "net-tools"
RUN yum install -y "w3m"
RUN yum install -y "wget"
RUN yum install -y "vim-enhanced"
RUN yum install -y "tar"
RUN yum install -y "git"RUN mkdir /usr/lib/locale -p
RUN /bin/sh -c 'cd /usr/lib/locale && sleep 2 && yum reinstall -y "glibc-common"'
RUN echo zh_CN.UTF-8 > /etc/locale.confADD run.sh /
RUN chmod 777 /run.sh
CMD ["/run.sh"]

Dockerfile文件描述的几个解释:
           1、FROM:  FROM指令指定的基础image,本文中指定已经创建好的fedora21-base镜像,格式为:                          镜像名称:镜像标签(TAG)

2、RUN:  RUN可以运行任何被基础image支持的命令。本文中运行yum install 命令,下载安装                                  net_tools、w3m、wget、vim。
 
           3、CMD: 设置指令,用于container启动时指定的操作。
 
           4、CMD:设置指令,用于container启动时指定的操作。本文中在container启动时运行ADD复制的run.sh文件。

运行Dockerfile文件创建镜像

  • 通过docker build命令创建镜像,代码如下所示:
# docker build -t feodra21-tools .

当Dockerfile文件中的四条RUN命令都Complete以后,最后会有如下输出,代表创建镜像成功:

Removing intermediate container da84d9ffbcd7Successfully built 204d157f7074
  • 验证feodra21-tools镜像是否创建成功,代码如下:
# docker imagesREPOSITORY       TAG        IMAGE ID        CREATED         SIZE
feodra21-tools   latest     204d157f7074    3 minutes ago   487.2 MB
fedora21-base    21         099b24f7ff5a    33 hours ago    206.9 MB

通过查看docker images的执行结果可以确定feodra21-tools镜像创建成功,fedora21-base镜像就是Dockerfile文件中FROM 指定的基础镜像。

创建docker容器
 
创建好feodra21-tools镜像,就可以创建容器了,代码如下:

[root@localhost tools]# docker run -i -t feodra21-tools
[root@34df78e5bf37 /]#

docker run命令中,-i 代表容器可以接收键盘上的输入(主要用于在容器的命令上运行程序);-t 和 -i 配合使用。
 容器运行成功后可以看见一个明显的变化,就是命令行提示符已经由本机的机器名称(localhost)变成了容器的ID(34df78e5bf37)。
 
至此,龙芯feodra21-tools容器创建成功,并且开始正常运行了!

验证安装的命令是否可以正常使用
 
在验证安装的命令是否可以正常使用,可以在容器里的命令行分别输入:ifconfig、w3m、wget、vim。只要不提示 “command not found” 就代表安装成功,并可以正常使用,使用ifconfig举例测试:

# ifconfigeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.18.0.2  netmask 255.255.0.0  broadcast 0.0.0.0inet6 fe80::42:acff:fe12:2  prefixlen 64  scopeid 0x20<link>ether 02:42:ac:12:00:02  txqueuelen 0  (Ethernet)RX packets 3  bytes 238 (238.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 4  bytes 328 (328.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 0  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

总结
 
本文描述在龙芯平台上通过Dockerfile制作镜像的方法,并成功运行容器。
如果没有创建fedora21-base,在执行Dockerfile文件时会提示基础镜像不存在的错误。
以上论述可供开发者和部署服务器应用的管理员参考。

龙芯Fedora21平台制作feodra21-tools docker镜像相关推荐

  1. 龙芯Fedora21平台制作feodra21-loongson-app docker镜像

    http://ask.loongnix.org/?/article/86 在按照本文的方式制作镜像之前,首先要先创建基础镜像feodra21-apache-php-mysql,可以参考: http:/ ...

  2. 龙芯Fedora21平台制作docker镜像,并且解决vi乱码问题

    http://ask.loongnix.org/?/article/81 实验环境   本文的实验都是在龙芯3A3000机器上. 操作系统是loongnix(Fedora21)20170726版本, ...

  3. 4.龙芯2k1000 系统制作及安装

    4.龙芯2k1000 系统制作及安装 文章目录 4.龙芯2k1000 系统制作及安装 (一).制作系统启动U盘 (二).操作系统拷贝 准备材料: 系统内核文件vmlinuz buildroot根文件系 ...

  4. 龙芯Mips平台vmlinux文件分析

    龙芯Mips平台vmlinux文件分析 一.文件格式 1. 文件类型 2. 使用场景 二.结构内容描述 1. ELF header(ELF 头) 2. 字符串表表项 Entry 3. 读取字符串表 S ...

  5. 基于龙芯2K1000平台CL1606AD760-8驱动调试总结

    历经两周终于将设计的AD采集板驱动起来,并且读取电流值成功,唯不是一个突破!由硬件设计再到驱动,一步步设计改变:到设备树添加驱动并加载,总结主要分为两方面,一个驱动调试和硬件调试.细节如下: 驱动调试 ...

  6. 破解elasticsearch(制作破解版docker镜像)

    破解elasticsearch(制作破解版docker镜像) 本文仅用于学习交流,要使用elasticsearch的付费功能,请通过正规渠道购买platinum(白金)版. 一.部署纯净版elasti ...

  7. 龙芯电脑平台kubernetes集群编译及部署方案

    http://ask.loongnix.org/?/article/105  一.环境 操作系统: loongnix 内核: 3.10.84 go版本: go1.9.2 linux/mips64le ...

  8. 奔跑吧!中国芯,北京迅为龙芯处理器平台

    龙芯是中国科学院计算所自主研发的通用CPU,采用简单指令集,类似于MIPS指令集.龙芯1号的频率为266MHz,最早在2002年开始使用.龙芯2号的频率最高为1GHz.龙芯3A是首款国产商用4核处理器 ...

  9. 龙芯3B1500平台,源码安装nodejs过程中失败问题

    http://ask.loongnix.org/?/question/91 你好,我在龙芯3B1500,安装已经移植成功的Nodejs-4.3.1 ,完全按照社区步骤走的. 机器上gcc版本4.8.3 ...

最新文章

  1. HTTP 2.0与HTTP 1.1区别
  2. 助力飞鸽传书高效沟通
  3. bash中正则表达式
  4. 爱pia戏推出PC客户端,为您自动置顶窗口,方便查找
  5. 【05】JSON笔记
  6. 海康服务器协议,国标流媒体服务器GB28181协议和海康设备的交互过程记录
  7. 全国大学生电子设计竞赛(五)--开关电源的设计
  8. switch删除用户显示正在维护服务器,Switch即将迎来6.0更新 账号与用户无法再正常解绑...
  9. 北京app开发公司排行榜-开发app的公司有哪些呢
  10. vue01-前端知识体系(狂神)
  11. java读pdf一行_java读与pdf白件的时分呈现非常
  12. 22春天津大学《工程地质学》在线作业二
  13. Direct3D初始化
  14. matlab对AMD显卡的支持,matlab - 深入学习Matlab与AMD显卡 - 堆栈内存溢出
  15. 独立IP与共享IP有什么区别
  16. 500G !!史上最全的JAVA全套教学视频网盘分享 (JEECG开源社区)
  17. uniapp h5页面打开app,没有下载则跳转下载
  18. WRF模式中关于eta_levels的设置以及对应的高度
  19. AIDevOps离我们有多远?
  20. tiktok xa xl xg xk算法测试记录

热门文章

  1. 【adb】cmd命令行输入adb时始终提示adb为非内部命令
  2. C语言——文件操作及常见问题
  3. 更名通知 || 初心未改,只为更好,好嗨游戏来了
  4. 建筑师杰克帮你理解框架与模式
  5. 最全的硬盘问题及修复方法
  6. 司马懿在曹操追悼会上的讲话
  7. Excel自动输入当前时间的公式
  8. 项目:金融行业反欺诈模型
  9. laravel跨域问题
  10. /deep/深度作用域选择器