在本章節中將和大家講解:Dockerfile的第二部分:
![千鋒Linux雲計算教程全套視頻合集:Dockerfile詳解(二)](http://p2.ttnews.xyz/loading.gif)
Dockerfile
FROM 指令
主要作用是指定一個鏡像作為構建自定義鏡像的基礎鏡像,在這個基礎鏡像之上進行修改定製。
這個指令是 Dockerfile 中的必備指令,同時也必須是第一條指令。
在 Docker Store 上有很多高質量的官方鏡像,可以直接作為我們的基礎鏡像。
作為服務類的,如 Nginx Mongo 等
用於開發的, 如 Python golang
操作系統類, 如 Centos ubuntu
除了一些現有的鏡像,Docker 還有一個特殊的鏡像 scratch
這個鏡像是虛擬的,表示空白鏡像
FORM scratch
這以為著這將不以任何鏡像為基礎鏡像。
可以把可執行的二進制文件複製到鏡像中直接執行,容器本身就是和宿主機共享 Linux內核的。
使用 Go 語言開發的應用很多會使用這種方式來製作鏡像,這也是為什麼有人認為 Go 是特別適合容器微服務架構的語言的原因之一。
![千鋒Linux雲計算教程全套視頻合集:Dockerfile詳解(二)](http://p2.ttnews.xyz/loading.gif)
插個小消息,也方便想學習的同學,在文章下方留言即可試聽課程外加領取千鋒HTML5、UI交互設計、PHP、Java+雲數據、大數據開發、VR/AR/Unity遊戲開發、Python人工智能、Linux雲計算、全棧軟件測試、網絡安全等全部的視頻學習教程。
製作自己的 Hello world
- 在任意一臺 Linux 機器上,安裝 gcc
- 查看有沒有安裝
[root@localhost hello_qf]# rpm -qa gcc glibc-static
glibc-static-2.17-222.el7.x86_64
gcc-4.8.5-11.el7.x86_64
沒有的話,進行安裝即可
[root@localhost hello_qf]# yum install gcc glibc-static
- 編輯 C 源代碼文件
[root@localhost docker]# cat hello.c
#include <stdio.h>
int main()
{
printf("Hello, Yangge! \\n");
return 0;
}
- 將源代碼文件編譯為可執行的二進制文件
[root@localhost hello_qf]# gcc --static hello.c -o hello
編譯好後,測試一下
[root@localhost hello_qf]# ls
hello hello.c
# hello 是我們編譯好的二進制文件
# hello.c 是 C 的源碼文件
[root@localhost hello_qf]# ./hello
Hello Yangge # 輸出結果,說明編譯成功
- 編輯 Dockerfile
在有 hello 二進制的文件目錄下,編譯 Dockerfile 文件,內容如下:
[root@localhost hello_qf]# ls
Dockerfile hello hello.c
[root@localhost hello_qf]# cat Dockerfile
FROM scratch
ADD hello /
CMD ["/hello"]
- ADD 是把當前目錄下的 hello 文檔拷貝到 容器中的根目錄下
- CMD 執行根目錄下的 hello 文件
- 構建新的鏡像
閱讀更多 千鋒長沙 的文章