FROM scratch 很多镜像都是从他开始

创建自己的centos

FROM centos 基于官方的centos开始写

构建自己的centos

[root@docker dockerfile]# cat mydockerfile

FROM centos (没有镜像时会拉取)

MAINTAINER SUPERMAO2567169491@qq.com

ENV MYPATH /usr/local (设置环境变量)

WORKDIR $MYPATH (设置工作目录,默认工作目录)(进入时直接进入此目录)

RUN yum -y install vim

RUN yum -y install net-tools

EXPOSE 80

CMD echo $MYPATH

CMD echo "-----end----"

CMD /bin/bash

FROM默认拉最新的centos可是centos8无法上网

指定拉centos7.0

构建镜像

docker build -f mydockerfile -t mycentos0.1 .

我们可以列出本地镜像的变更历史

docker history 950ba3687977

可以查看这个镜像如何一步步做起来

CMD与ENTRYPOINT只执行最后一个

CMD ENTRYPOINT

测试cmd

[root@docker dockerfile]# cat

dockerfile.cmd mydockerfile

[root@docker dockerfile]# cat dockerfile.cmd

FROM centos:7

CMD ["ls","-a"]

[root@docker dockerfile]# docker run cmdtest

.

..

.dockerenv

anaconda-post.log

bin

dev

etc

home

lib

lib64

media

mnt

opt

proc

root

run

sbin

srv

sys

tmp

usr

var

[root@docker dockerfile]#

启动时执行此命令

[root@docker dockerfile]# docker run cmdtest -l
docker: Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "-l": executable file not found in $PATH: unknown.
ERRO[0000] error waiting for container: context canceled
[root@docker dockerfile]#

cmd的情况下,用-l替换了cmd的命令 -l不是命令所以报错

["ls","-a"] (双引号逗号严格写)

entrypoint可以追加-l   ls  -al
[root@docker dockerfile]# docker run entrypoint -l
total 0
drwxr-xr-x. 1 root root 6 Mar 30 06:59 .
drwxr-xr-x. 1 root root 6 Mar 30 06:59 ..
-rwxr-xr-x. 1 root root 0 Mar 30 06:59 .dockerenv
lrwxrwxrwx. 1 root root 7 Nov 3 2020 bin -> usr/bin
drwxr-xr-x. 5 root root 340 Mar 30 06:59 dev
drwxr-xr-x. 1 root root 66 Mar 30 06:59 etc
drwxr-xr-x. 2 root root 6 Nov 3 2020 home
lrwxrwxrwx. 1 root root 7 Nov 3 2020 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Nov 3 2020 lib64 -> usr/lib64
drwx------. 2 root root 6 Sep 15 2021 lost+found
drwxr-xr-x. 2 root root 6 Nov 3 2020 media
drwxr-xr-x. 2 root root 6 Nov 3 2020 mnt
drwxr-xr-x. 2 root root 6 Nov 3 2020 opt
dr-xr-xr-x. 141 root root 0 Mar 30 06:59 proc
dr-xr-x---. 2 root root 162 Sep 15 2021 root
drwxr-xr-x. 11 root root 163 Sep 15 2021 run
lrwxrwxrwx. 1 root root 8 Nov 3 2020 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Nov 3 2020 srv
dr-xr-xr-x. 13 root root 0 Mar 30 03:51 sys
drwxrwxrwt. 7 root root 171 Sep 15 2021 tmp
drwxr-xr-x. 12 root root 144 Sep 15 2021 usr
drwxr-xr-x. 20 root root 262 Sep 15 2021 var
[root@docker dockerfile]# cat docker-entrypoint
FROM centos
ENTRYPOINT ["ls","-a"]
[root@docker dockerfile]#

对比测试发现CMD与ENTRYPOINT的区别

docker cmd和entrypoint的更多相关文章

  1. docker CMD 和 ENTRYPOINT 区别

    昨天用Dockerfile来启动mongodb的集群,启动参数--replSet死活没执行,最后就决定研究一哈cmd和entrypoint.但是上网看了一些资料个人觉得讲的不好,还是没有说出根本的东西 ...

  2. Dockerfile创建自定义Docker镜像以及CMD与ENTRYPOINT指令的比较

    1.概述 创建Docker镜像的方式有三种 docker commit命令:由容器生成镜像: Dockerfile文件+docker build命令: 从本地文件系统导入:OpenVZ的模板. 关于这 ...

  3. 论docker中 CMD 与 ENTRYPOINT 的区别

    Dockerfile里有 CMD 与 ENTRYPOINT 两个功能咋看起来很相似的指令,开始的时候觉得两个互用没什么所谓,但其实并非如此: CMD指令: The main purpose of a ...

  4. 论docker中 CMD 与 ENTRYPOINT 的区别(转)

    Dockerfile 用于自动化构建一个docker镜像.Dockerfile里有 CMD 与 ENTRYPOINT 两个功能咋看起来很相似的指令,开始的时候觉得两个互用没什么所谓,但其实并非如此: ...

  5. RUN vs CMD vs ENTRYPOINT - 每天5分钟玩转 Docker 容器技术(17)

    RUN.CMD 和 ENTRYPOINT 这三个 Dockerfile 指令看上去很类似,很容易混淆.本节将通过实践详细讨论它们的区别. 简单的说: RUN 执行命令并创建新的镜像层,RUN 经常用于 ...

  6. Docker入门之---ENTRYPOINT和CMD

    1. 前言  ENTRYPOINT 和CMD 都是Dockerfile 中的命令,两者都是用来:指定默认的容器的主进程的启动命令.那么接下来就介绍一下这两者在Dockerfile 中,以及Docker ...

  7. CMD centos7 安装 最新版本的docker -- dockerfire 原语 ENTRYPOINT - 导入镜像 tar mariadb Dockerfile 构建镜像

    yum update # vim /etc/yum.repos.d/docker.repo //添加以下内容 [dockerrepo] name=Docker Repository baseurl=h ...

  8. Docker 的CMD与ENTRYPOINT区别

    我们在构建一个docker镜像的时候,Dockerfile里面有两个命令会引起我们的注意,它们就是 CMD 和 ENTRYPOINT,看起来很相似,实际上并非如此. 一.CMD 顾名思义就是允许用户指 ...

  9. Docker系列(23)- CMD和ENTRYPOINT的区别

    CMD和ENTRYPOINT的区别 CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代 ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令 测试CMD ...

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

    构建自己的centos镜像 docker pull centos下载下来的镜像都是基础版本,缺少很多常用的命令功能,比如:ll.vim等等, 下面介绍制作一个功能较全的自己的centos镜像. 步骤 ...

随机推荐

  1. 安装numpy:conda install nampy==1.16 时报错An HTTP error occurred when trying to retrieve this URL.

    安装numpy:conda install nampy==1.16 时报错An HTTP error occurred when trying to retrieve this URL. HTTP e ...

  2. zabbix笔记_004 监控Windows主机

    zabbix监控Windows主机 zabbix for windows 安装包下载地址: https://www.zabbix.com/cn/download_agents#tab:34 下载zab ...

  3. Leetcode-916. Word Subsets-(Medium)

    一.问题描述 We are given two arrays A and B of words.  Each word is a string of lowercase letters. Now, s ...

  4. Aspire项目发布到远程k8s集群

    前提 你必须会创建aspire项目,不会的请先看微服务新体验之Aspire初体验 Aspirate (Aspir8) Aspirate 是将aspire项目发布到k8s集群的工具 安装aspirate ...

  5. jquery jquery的选择器

      什么是 jQuery 前端的一个方法库/函数库                 将很多过功能,封装好,我们可以直接使用             官网  https://jquery.com/    ...

  6. kettle从入门到精通 第十五课 kettle 映射 (子转换)01

    1.kettle 里面的映射和java代码里面的封装是一个概念,就是将一个可复用的模块单独抽离为公共模块供其他模块引用,用到的步骤或者组件如下 2.构建子映射,子映射需要用到映射输入规范和映射输出规范 ...

  7. AnnotationTransactionAttributeSource is only available on Java 1.5 and higher和windows同时安装jdk7和jdk8

    AnnotationTransactionAttributeSource is only available on Java 1.5 and higher和windows同时安装jdk7和jdk8 出 ...

  8. mysql 联合表查询从表即使有索引依然ALL的一个原因-索引ALL解决,字符编码方式不一致导致全表搜索

    mysql 联合表查询从表即使有索引依然ALL的一个原因-索引ALL解决,字符编码方式不一致导致全表搜索那就是主表和从表的关联字段的编码方式不一样!!! 产生的现象: 解决之后,正确的使用了t2.or ...

  9. Thanos解码:打造企业级云原生监控解决方案

    本文深入探讨了Thanos技术在云原生监控领域的应用,详细介绍了Thanos的基本概念.核心组件.安装配置步骤以及一个实战案例,帮助读者理解如何利用Thanos解决大规模监控数据的存储.查询和高可用性 ...

  10. jdk17+spring6下打jar包

    由于特定情况,本机下有多个jdk,而JAVA_HOME又只有一个. 本人习惯在命令行下一个命令编译打包程序,如何解决这个问题? 研究了不少时间,得到了两个解决方案: 1.使用bat   --  非常烂 ...