Docker鏡像制作之Dockerfile
docker包括三個基本概念
. 鏡像(Image)
. 容器(Container)
. 倉庫(Repository)
通過理解這幾個概念,可以來理解docker的整個生命周期;
Docker鏡像:包含一個完整操作系統(比如Ubuntu),里邊安裝了用戶需要的應用程序;
Docker容器:簡易版的Linux環境和運行在其中的應用程序;
Docker倉庫:集中存放鏡像文件的倉庫(當前paas用了兩臺虛機用來做倉庫,cce-docker-hub*)。
想必大家應該了解他們之間的關系了吧,Docker容器是從Docker鏡像創建的運行實例,而Docker鏡像存放在Docker倉庫中。
Docker安裝
安裝比較簡單,可以參考
https://docs.docker.com/engine/installation/linux/ubuntulinux/
Docker鏡像過程
主要通過我這次制作Filebeat的Docker鏡像的例子,來向大家介紹整個Docker鏡像制作的過程。
1.DockerFile制作
下面就是用來制作filebeat鏡像的Dockerfile,幾行就搞定了,是不是很簡單啊!
Dockerfile:
FROM ubuntu:14.04
MAINTAINER z00353090
WORKDIR /opt
RUN apt-get update
RUN apt-get install -y supervisor
RUN mkdir -p /opt/jobs/conf
RUN mkdir /opt/jobs/store
ADD filebeat /opt/jobs/
ADD conf/supervisor_filebeat.conf /etc/supervisor/conf.d/filebeat.conf
CMD [ "/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf" ]
制作鏡像來源
1.從Docker hub獲取已有鏡像 :docker pull ubnutu14.04
2.利用本地文件系統導入鏡像 :cat ubuntu_14.04.tar | docker import - ubuntu:14.04 FROM ubuntu:14.04 FROM指令告訴 Docker 使用ubuntu_14.04鏡像作為基礎
維護者的信息
MAINTAINER z00353090
工作目錄
WORKDIR /opt 為后續的RUN、CMD指令配置工作目錄
安裝軟件
RUN開頭的指令會在創建中運行
RUN apt-get update
RUN apt-get install -y supervisor
創建目錄
RUN mkdir -p /opt/jobs/conf
RUN mkdir /opt/jobs/store
每條 RUN 指令將在當前鏡像基礎上執行指定命令,并提交為新的鏡像。
拷貝文件
ADD filebeat /opt/jobs/
ADD conf/supervisor_filebeat.conf /etc/supervisor/conf.d/filebeat.conf
ADD指令將本地文件拷貝到容器中
啟動容器時執行的命令
通過CMD指定啟動容器時執行的命令
CMD [ "/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf" ]
2.創建鏡像
編寫完成 Dockerfile 之后,用 docker build 命令來創建鏡像,要指定鏡像的標簽信息,可以通過 -t選項:docker build -t filebeat:v5.0 /path/to/Dockerfile,可以通過docker images命令查看自己制作的鏡像
3.鏡像上庫
當用戶創建了自己的鏡像之后就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺機器上使用這個鏡像時候,只需要從倉庫上 pull 下來就可以了。
4.導出鏡像
如果要導出鏡像到本地文件,可以使用docker save命令
docker save –o filebeat_V5.0.tar filebeat:V5.0
5.創建并啟動容器
利用上面制作好的鏡像,創建并啟動容器
docker run -d -v /path/to/log/containers:/opt/store/log/containers/ \
-v /path/to/log/component:/opt/store/log/component/ \
-v /path/to/filebeat/config:/opt/jobs/conf filebeat:V5.0
-d選項是指定后臺運行
-v選項將主機目錄掛載到容器,通過該目錄來共享文件
容器創建成功后會有一個containerID生成,因為我通過CMD指定啟動容器時執行的命令,所以docker ps會發現有,如下圖所示
轉載請注明出處:華為云博客 https://portal.hwclouds.com/blogs
Docker 鏡像服務
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。