目錄
前言
我們都知道在docker中我們在遠程倉庫下的都是鏡像對吧,那麼我們是可以從倉庫裏下載一些jdk鏡像,tomcat鏡像啊之類的鏡像是吧。
所以呢,本章就是學習如何製作一個鏡像。
本次會從兩個方面去說如何製作鏡像:
1、寫一個dockerfile文件build成一個鏡像
2、通過一個容器commit成一個鏡像
那個.tar 文件暫時不講,有興趣的可以去了解一下。
一、由dockerfile生成鏡像
1、dockerfile的基本結構
dockerfile基本結構
Dockerfile 由一行行命令語句組成, 並且支持以#開頭的註釋行,一般而言, Dockerfile 主體內容分爲四部分:
基礎鏡像信息、 維護者信息、 鏡像操作指令和容器啓動時執行指令。
部分 命令
基礎鏡像信息 FROM
維護者信息 MAINTAINER
鏡像操作指令 RUN、(COPY/ADD)、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME等
容器啓動時執行指令 CMD、ENTRYPOINT
2、傳文件到宿主機中(案例)
因爲特殊的需要所以我們今天的案例就是使用jdk1.8創建一個鏡像。
先在根目錄下創建一個文件夾
mkdir –p /javawwl_docker/jdk
要了解的傳輸方式(lrzsz)
這個是文件上傳的傳統方式,安裝一個lrzsz
#安裝lrzsz命令
yum install lrzsz -y
#選擇文件進行上傳
rz
要了解的傳輸方式(finalshell)
額,這個就是現在比較實用的一個工具,我也感覺太強大了的工具,之前的xshell,xftp,或xshell puls都感覺沒這個好用。
有興趣的可以去下載。教程網上都有
非常的實在,也就是圖形化界面,傳上去就行。
3、編寫dockerfile配置文件
輸入:docker images
可以發現我們導好了鏡像
那麼就可以啓動鏡像並且測試我們上面寫的命令
ok,那麼就已經成功搭建成功了。
二、由容器搭建一個鏡像
比如我們就用上面建好的容器來搭建一個鏡像
語法:
docker commit 容器ID 要形成的鏡像名
很簡單吧。
後記
之前忘記說了:
可能有些人不明白我打的2a之類的是什麼意思,其實也是容器ID的意思,只不過是簡寫了而已,系統還是會知道是指定的容器滴,
簡寫的前提沒有相同的ID