打造一个红旗(redflag)Linux的基础镜像(base image)
<h2 id="起因">起因</h2><p>由于工作原因,想找一个红旗Linux的基础镜像(base image)。网上搜了一下,但没有现成的。起初是想找对应的centos版本来代替,但又怕有些莫名其妙的问题。</p>
<h2 id="官方文档">官方文档</h2>
<p>不过搜索过程中,发现有人有类似的疑问,参见这个链接:</p>
<p>https://segmentfault.com/q/1010000005821637</p>
<p>里面提到了docker官方的文档,教你如何构建自己的base image。官方文档在此</p>
<p>https://docs.docker.com/develop/develop-images/baseimages/</p>
<p>里面大概有2种思路,一种是使用类似于 debootstrap 的工具,一种是自建从头写 dockerfile,base image为</p>
<pre><code class="language-bash">from scratch
</code></pre>
<p>此处的scratch代表一个空镜像。</p>
<p>由于不知道红旗Linux做了哪些魔改,所以开始尝试第一种方法:debootstrap工具。</p>
<p>但有个问题,debootstrap是debian系的,红旗整体是红帽系的…不过巧了,在搜debootstrap的时候,发现有人基于debootstrap开发了febootstrap。</p>
<h2 id="febootstrap">febootstrap</h2>
<p>安装比较简单,找到对应的包,就可以了。</p>
<p>febootstrap.rar</p>
<p>解压后进入对应文件夹,使用如下命令安装</p>
<pre><code class="language-bash">rpm -ivh *rpm
</code></pre>
<p>使用步骤参考这篇文章</p>
<p>https://www.58jb.com/html/66.html</p>
<h2 id="安装步骤">安装步骤</h2>
<p>步骤基本与上文一致,部分细节不一样,各取所需~</p>
<p>由于并没有找到红旗Linux可用的rpm源,就只能使用本地光盘制作镜像。</p>
<p>此处需要挂载iso文件,使用下列命令挂载即可</p>
<pre><code class="language-bash">mount -o loop xxxx.isomount_dir_name
cd dir_name
python -m SimpleHTTPServer 80 (Python2)
</code></pre>
<p>建立本地源</p>
<pre><code class="language-bash">cd /etc/yum.repos.d/
tar zcf yum.tar.gz .
rm -rf *.repo
</code></pre>
<p>添加本地源文件</p>
<pre><code class="language-bash">cat >/etc/yum.repos.d/cdrom.repo <<-EOF# 回车后输入下列数据
name=Redflag-Media
baseurl=file:///dir_name
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Redflag-7-x86_64
EOF # 回车
</code></pre>
<p>选择对应目录,执行</p>
<pre><code class="language-bash">cd workdir # 根据情况自己定
febootstrap -i bash -i wget -i yum -i man -i vim -i openssh-server -i openssh-clients -i tar -i gzipredflag redflag-7.3-base http://127.0.0.1
</code></pre>
<p>上述命令会生成一个redflag-7.3-base文件夹,进入文件夹,拷贝所需文件,并打包镜像</p>
<pre><code class="language-bash">cd workdir
cp /etc/skel/.bash* redflag-7.3-base/root/
tar -c .|docker import - redflag-7.3:base# 生成的镜像名
</code></pre>
<p>查看镜像</p>
<pre><code class="language-bash">docker image ls# 可以看到 redflag-7.3:base
</code></pre>
<p>测试</p>
<pre><code class="language-bash">docker -it redflag-7.3:base bash# 可以进入容器即为成功
</code></pre>
<p>至此完成~</p>
<h2 id="其他">其他</h2>
<p>过程中遇到了挂载u盘的问题,ntfs u盘可以参考</p>
<p>https://my.oschina.net/u/4364192/blog/3326016</p>
<p>exfat u盘,参考</p>
<pre><code class="language-bash">yum localinstall --nogpgcheck http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum localinstall http://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
yum clean & yum makecache
yum install exfat-utils fuse-exfat
mount.exfat /dev/sdb1 /root/data/udisk/
</code></pre><br><br>
来源:https://www.cnblogs.com/wswang/p/14511888.html
頁:
[1]