day104 CMD ENTRYPOINT之间的关系

day104 CMD ENTRYPOINT之间的关系

都是在定义镜像的时候,在docker run 运行创建容器时,在容器里执行什么命令

entrypoint 入口点  ,命令

CMD [参数1, 参数2, 参数3]

entrypoint 参数1  参数2  参数3

cmd镜像

  • docker 本质可以理解为golang编译的二进制命令
  • docker 容器,当作命令去使用
RUN apt-get update \
&& apt-get install -y curl \ 
&& rm -rf /var/lib/apt/lists/*

CMD [ "curl", "http://myip.ipip.net" ]

# 这个镜像,运行的容器,可以当作命令去使用
# 容器的作用,就是获取当前容器的ip

FORM centos:7.4.1708
LABEL author: linuxyzk
WORKDIR /opt
ENV name='i love you yzk'
CMD ["curl" , "-s" , "ifconfig.me"]


# docker本质的所有信息,都是提交为json,必须是双引号

[root@docker-100 test_curl]# docker build -t t1-curl .

# 然后就运行容器
[root@docker-100 test_curl]# docker run t1-curl curl -s http://myip.ipip.net
当前 IP:42.80.104.29  来自于:中国 天津 天津  电信

# 将容器当命令使用,用一次就结束了。

entrypoint 的使用

# 定义一个程序的入口,可以是一个脚本,CMD传入的东西都会被当作参数给entrypoint cmd

# 我们查询这个ip容器的构建
[root@docker-100 test_curl]# cat Dockerfile 
FROM centos:7.4.1708
LABEL author: linux0224
WORKDIR /opt
ENV name='linux0224'
ENTRYPOINT ["curl" , "http://myip.ipip.net"]

# 可以给容器运行时,传入动态的参数


# 同时给用entrypoint和cmd,理解,什么是入口点,参数指令
# 最终给为Dockerfile

小节,VOLUME , CMD , ENTRYPOINT的关系

volume 定义容器内要映射的目录,docker会创建一个卷
基于 docker vloume ls 查看
以及 docker inspect 容器 id 查找

cmd 会作为entrypoint 的参数传入给docker容器

总结,CMD相当于命令的参数,启动镜像时没有传入的,默认就是CMD里面的命令
ENTRYPOINT 相当于程序的入口,后面传入的参数会在命令的后面执行
posted @ 2025-05-21 17:51  国家一级冲浪yzk  阅读(6)  评论(0)    收藏  举报