1.在写dockerfile的时候使用了echo的方式向文件里面写入
基本格式是 echo " 想要写入的操作" >(>>) 路径/dockerfile
1).因为是要向文件里面进行一个写操作同时希望建立容器的时候执行这个操作,所以echo是必要的
echo的本质是输出 " ''里面的内容 默认情况下是输出到界面上 但是我们这里利用了>重定向的功能,所有这里echo ""当中的内容实质上是被输出进了文件里面 也就是完成了一个写入的实际功能
2).>在这里起一个重定向的功能上述已经提到 ,但>和>>有点区别比如
echo "hello world" > dockerflie
echo "hello world" > dockerflie
在这一次的输入当中 虽然向dockerflie当中输入两次 "hello world" 语句 但是当我们打开dockerflie文件之后我们只能看见一条 hello world .因为">" 在重定向时将会覆盖最新的语句 所以无论写了多少次 多少遍 最后还是只能看见一条 "hello world"
另一个例子 ">>"
echo "hello world " > dockerflie
echo "hello world " >> dockerflie
这样写就没问题了 ">>"会在上一句的末尾换行进行新的语句的输入.所以我们在输入的时候,第一局语句可以进行''>'' 的重定向 那之后的语句如果不是有修改重写的想法 一般还是会有">>"来进行追加
3). 使用bulid 进行dockerflie 时一定要记得确定dockerflie 的地址
一开始我的语句是这么写的
docker build (镜像名)
就结束了 然后一直跳错.后来跟自带的语句比了半天发现是最后 缺了一个" ."来表示取当前目录下的dockerflie文件 改成
docker build 镜像名 .
之后就合适通过了
4). CMD 跟 ENTRYPOINT
1. cmd跟entrypoint 都是指令在写入的时候一定要记得跟后面的内容隔开
CMD["df"]
这样就是错的,中间应该要存在空格
CMD ["df"]
然后就是entrypoint跟cmd关系的理解 如果不存在 entrypoint 的时候 cmd单独写要有指令和必要的参数 其实参数不必要可以去掉.但是如果存在entrypoint的时候 cmd里面就只能装参数了 指令要放在entrypoint里面
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)