龍芯Fedora21平臺製作feodra21-tools docker映象
http://ask.loongnix.org/?/article/82
在按照本文的方式製作映象之前,首先要先建立基礎映象fedora21-base,可以參考:
http://ask.loongnix.org/?/article/81
建立feodra21-tools映象的必要性
在已經建立的feodra21-base映象中不包含常用命令,如:ifconfig、w3m、wget、vim等命令。當在feodra21-base容器的命令列中輸入這些命令時,會有錯誤提示,如下:
[[email protected] /]# ifconfig bash: ifconfig: command not found [[email protected] /]# w3m bash: w3m: command not found [[email protected] /]# wget bash: wget: command not found [[email protected] /]# 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/bash export LC_ALL=zh_CN.UTF-8 export LANG=zh_CN.UTF-8 /bin/bash
編寫Dockerfile檔案,如下程式碼所示:
# vi Dockerfile 以下是Dockerfile包含的內容: FROM fedora21-base:21 RUN 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.conf ADD 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 images REPOSITORY 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映象,就可以建立容器了,程式碼如下:
[[email protected] tools]# docker run -i -t feodra21-tools [[email protected] /]#
docker run命令中,-i 代表容器可以接收鍵盤上的輸入(主要用於在容器的命令上執行程式);-t 和 -i 配合使用。
容器執行成功後可以看見一個明顯的變化,就是命令列提示符已經由本機的機器名稱(localhost)變成了容器的ID(34df78e5bf37)。
至此,龍芯feodra21-tools容器建立成功,並且開始正常運行了!
驗證安裝的命令是否可以正常使用
在驗證安裝的命令是否可以正常使用,可以在容器裡的命令列分別輸入:ifconfig、w3m、wget、vim。只要不提示 “command not found” 就代表安裝成功,並可以正常使用,使用ifconfig舉例測試:
# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.18.0.2 netmask 255.255.0.0 broadcast 0.0.0.0 inet6 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 0 TX packets 4 bytes 328 (328.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::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 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
總結
本文描述在龍芯平臺上通過Dockerfile製作映象的方法,併成功執行容器。
如果沒有建立fedora21-base,在執行Dockerfile檔案時會提示基礎映象不存在的錯誤。
以上論述可供開發者和部署伺服器應用的管理員參考。