首页 > 系统相关 >Docker | dockerfile构建centos镜像,以及CMD和ENTRYPOINT的区别

Docker | dockerfile构建centos镜像,以及CMD和ENTRYPOINT的区别

时间:2022-10-15 18:46:36浏览次数:65  
标签:centos CMD ENTRYPOINT 镜像 docker dockerfile

构建自己的centos镜像

docker pull centos下载下来的镜像都是基础版本,缺少很多常用的命令功能,比如:llvim等等,

下面介绍制作一个功能较全的自己的centos镜像。

步骤

1、编写dockerfile文件

FROM centos
MAINTAINER xiao<[email protected]>
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、构建镜像

  • -f file 指定dockerfile文件的路径

  • -t tag 指定name:tag

docker build -f ./mydockerfile -t mycentos:0.1 .

Successfully built e7527f97f78a
Successfully tagged mycentos:0.1

3、测试运行

docker images
docker run -it mycentos:0.1

可以看到进入容器之后,直接就是在 /usr/local 目录下,是因为dockerfile配置的WORKDIR

这时,ifconfigvim命令都可以使用了

4、查看镜像构建历史记录

docker history imageID

CMD和ENTRYPOINT的区别

编写CMD测试dockerfile文件

  1. 编写dockerfile文件
FROM centos
CMD ["ls", "-a"]
  1. 构建镜像
docker build -f ./dockerfile -t cmd-test .
  1. 启动镜像
docker run imageID/iamgeName

测试发现,启动镜像时追加的命令替换了CMD命令,如下图所示:

编写ENTRYPOINT测试dockerfile文件

每个Dockerfile只能有一个ENTRYPOINT,如果指定了多个,只有最后一个被执行,而且一定会被执行

FROM centos
ENTRYPOINT ["ls", "-a"]
# nginx 镜像
ENTRYPOINT [ "/usr/sbin/nginx", "-g", "daemon off;" ]

总结

  1. CMD命令会被启动容器时追加的命令替换执行,

2.ENTRYPOINT命令不会被启动容器时追加的命令替换,而是合并执行


我是 甜点cc

热爱前端,也喜欢专研各种跟本职工作关系不大的技术,技术、产品兴趣广泛且浓厚,等待着一个创业机会。本号主要致力于分享个人经验总结,希望可以给一小部分人一些微小帮助。

希望能和大家一起努力营造一个良好的学习氛围,为了个人和家庭、为了我国的互联网物联网技术、数字化转型、数字经济发展做一点点贡献。数风流人物还看中国、看今朝、看你我。

标签:centos,CMD,ENTRYPOINT,镜像,docker,dockerfile
From: https://www.cnblogs.com/all-smile/p/16794753.html

相关文章

  • CentOS最小化安装后找不到ifconfig命令
    1.ifconfig命令是设置或显示网络接口的程序,可以显示出我们机器的网卡信息,可是有些时候最小化安装CentOS等Linux发行版的时候会默认不安装ifconfig等命令,这时候你进入终端......
  • Centos 8 升级内核通过elrepo源
    一、Centos8升级内核通过elrepo源地址https://www.kernel.orghttp://elrepo.org/tiki/tiki-index.php 查看linux内核版本[root@localhost~]#cat/proc/versio......
  • Centos7安装配置jenkins
    安装前准备注:jenkins依赖jdk环境,需提前安装配置(如已安装请跳过)一、jdk8安装配置jdk8下载地址:https://www.oracle.com/java/technologies/javase/jdk8-arm-downloads.htm......
  • centos7.9 安装postgres15数据库
    1.安装yum仓库yuminstall-yhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm2.安装环境依赖(1).安装lib......
  • centOS7图形化安装(最小化安装的基础上安装)
    ┌──[[email protected]]-[~/awx-operator]└─$yumgrouplist已加载插件:fastestmirror没有安装组信息文件Mayberun:yumgroupsmarkconvert(see......
  • Centos8火狐浏览器升级
    1.提前下载好火狐浏览器安装包,如下:[root@T桌面]#lsFirefox-latest-x86_64.tar.bz2Firefox-latest-x86_64.tar.bz22.解压安装包并查看,过程如下:[root@T桌面]#tar-xfFi......
  • CentOS7脚本安装GitLab
    #!/bin/bashyuminstall-ycurlpolicycoreutils-pythonopenssh-serverperlsystemctlenablesshdsystemctlstartsshdfirewall-cmd--permanent--add-service=httpfi......
  • 打开cmd的几种方法
    打开cmd窗口的几种方法开始+Windows系统+命令提示符Windows+R,输入cmd,回车(推荐使用)在任意的文件夹下,按住shift键+鼠标右键,打开powershell窗口资源管理器的地址栏前加......
  • Windows CMD批处理
    需要生成uuid时,可以使用WindowsSDK自带的工具uuidgen.exe如下  如果需要生成一千个,那么使用批处理生成到txt文件中,批处理脚本如下@echoonfor/l%%iin(1,1,100......
  • Centos8修改Root密码
    1.reboot重启时候见到这种按e  2.找到linux那行的末尾对rhgbquiet进行删除     输入rd.break 输入完成后按住ctrl+x继续执行  3.这里输入mount......