dockerfile entrypoint cmd 同时使用
2023-09-09 10:21 qgbo 阅读(251) 评论(0) 收藏 举报CMD 与 ENTRYPOINT都是用于指定启动容器执行的命令,区别在于:
当docker run 命令中有参数时,守护进程会忽略CMD命令。
使用ENTRYPOINT指令不会忽略,并且会接收docker run 参数附加到命令行中。
docker run 的命令,相当于 新加的 CMD, 会覆盖原有的CMD
nginx 的镜像就是这样。
docker run -it -p 8888:80 --name nnnbb5 nginx 这样执行,无法输入 命令,因为前台挂着nginx 命令
docker run -it -p 8888:80 --name nnnbb5 nginx bash 这样可以输入命令,但是不会启动服务。
当退出他们的时候,他们的statue 也就exit 了
dockerfile:
FROM ubuntu MAINTAINER logic RUN apt-get update RUN apt-get install -y nginx RUN echo 'Use Dockerfile Build Image' > /var/www/html/index.nginx-debian.html EXPOSE 80
RUN 是在docker build 的时候执行的. 这是顺序执行。先要 拉取ubuntu, 在这个镜像里执行下面的内容。
docker exec -it ubuntu apt-get update... 这就往这个镜像里放了东西。最后编译出来一个镜像来,docker run 的时候,只是执行而已, 不用担心apt-install 时网络的问题。
这一句话能运行个 http 服务,并进入termial
sudo docker run -it --rm busybox sh -c "httpd & sh " / wget localhost/etc/localtime -O-
气功波(18037675651)
浙公网安备 33010602011771号