目錄
- 構(gòu)建自己的centos鏡像
- 步驟
- 1、編寫dockerfile文件
- 2、構(gòu)建鏡像
- 3、測(cè)試運(yùn)行
- 4、查看鏡像構(gòu)建歷史記錄
- CMD和ENTRYPOINT的區(qū)別
- 編寫CMD測(cè)試dockerfile文件
- 編寫ENTRYPOINT測(cè)試dockerfile文件
構(gòu)建自己的centos鏡像
docker pull centos
下載下來的鏡像都是基礎(chǔ)版本,缺少很多常用的命令功能,比如:ll
、vim
等等,
下面介紹制作一個(gè)功能較全的自己的centos鏡像。
步驟
1、編寫dockerfile文件
FROM centos MAINTAINER xiao<example@163.com> ENV MYPATH /usr/local WORKDIR $MYPATH RUN yum -y install vim # vim命令 RUN yum -y install net-tools # ifconfig命令 EXPOSE 80 CMD echo $MYPATH CMD echo "---end--" CMD /bin/bash
2、構(gòu)建鏡像
-f file 指定dockerfile文件的路徑
-t tag 指定name:tag
docker build -f ./mydockerfile -t mycentos:0.1 . Successfully built e7527f97f78a Successfully tagged mycentos:0.1
3、測(cè)試運(yùn)行
docker images docker run -it mycentos:0.1
可以看到進(jìn)入容器之后,直接就是在 /usr/local
目錄下,是因?yàn)?code>dockerfile配置的WORKDIR
這時(shí),ifconfig
、vim
命令都可以使用了
4、查看鏡像構(gòu)建歷史記錄
docker history imageID
CMD和ENTRYPOINT的區(qū)別
編寫CMD測(cè)試dockerfile文件
編寫dockerfile文件
FROM centos CMD ["ls", "-a"]
構(gòu)建鏡像
docker build -f ./dockerfile -t cmd-test .
啟動(dòng)鏡像
docker run imageID/iamgeName
測(cè)試發(fā)現(xiàn),啟動(dòng)鏡像時(shí)追加的命令替換了CMD
命令,如下圖所示:
編寫ENTRYPOINT測(cè)試dockerfile文件
每個(gè)Dockerfile
只能有一個(gè)ENTRYPOINT
,如果指定了多個(gè),只有最后一個(gè)被執(zhí)行,而且一定會(huì)被執(zhí)行
FROM centos ENTRYPOINT ["ls", "-a"]
# nginx 鏡像 ENTRYPOINT [ "/usr/sbin/nginx", "-g", "daemon off;" ]
總結(jié) CMD
命令會(huì)被啟動(dòng)容器時(shí)追加的命令替換執(zhí)行,
2.ENTRYPOINT
命令不會(huì)被啟動(dòng)容器時(shí)追加的命令替換,而是合并執(zhí)行