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 相当于程序的入口,后面传入的参数会在命令的后面执行
浙公网安备 33010602011771号