1 |
|
这里就会输出”this is a test”这串字符,而这个imageecho镜像对应的容器表现出来的功能就像一个echo程序一样。 你添加的参数“this is a test”会添加到ENTRYPOINT后面,就成了这样 /bin/echo “this is a test” 。现在你应该明白进入点的意思了吧。
例子二:
1 |
|
构造出来的镜像你可以这样运行(假设名为st):
1 |
|
这样相当: /bin/cat /etc/fstab
这个命令的作用。运行之后就输出/etc/fstab
里的内容。
ENTRYPOINT有两种写法:
写法一:
1 |
|
写法二:
1 |
|
你也可以在docker run 命令时使用?Centrypoint指定(但是只能用写法一)。
下面是我把ENTRYPOINT设为[“/bin/sh -c”]时候运行的情况:
linux-oj9e:/home/lfly/project/docker # docker run -it t2 /bin/bash
root@4c8549e7ce3e:/# ps
PID TTY TIME CMD
1 ? 00:00:00 sh
9 ? 00:00:00 bash
19 ? 00:00:00 ps
可以看到PID为1的进程运行的是sh,而bash只是sh的一个子进程,/bin/bash
只是作为 /bin/sh -c
后面的参数。
CMD可以为ENTRYPOINT提供参数,ENTRYPOINT本身也可以包含参数,但是你可以把那些可能需要变动的参数写到CMD里而把那些不需要变动的参数写到ENTRYPOINT里面例如:
1 2 3 |
|
把可能需要变动的参数写到CMD里面。然后你可以在docker run里指定参数,这样CMD里的参数(这里是-c)就会被覆盖掉而ENTRYPOINT里的不被覆盖。
相关教程推荐:docker教程
以上就是docker下entrypoint和cmd的区别是什么?的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《Docker》频道 >>