首页 / DOCKER / Dockerfile 定制镜像
Dockerfile 定制镜像
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Dockerfile 定制镜像,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2196字,纯文字阅读大概需要4分钟。
内容图文
![Dockerfile 定制镜像](/upload/InfoBanner/zyjiaocheng/1150/1171fcb5eefc4e7dbd9905077108d606.jpg)
介绍
Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
这里以定制 tomcat 镜像为例,这次我们使用 Dockerfile 来定制。在一个空白目录中,建立一个文本文件,并命名为 Dockerfile:
[root@192 mydocker]# cat Dockerfile
FROM jdk:latest
ADD apache-tomcat-9.0.27.tar.gz /data/soft
RUN rm -rf apache-tomcat-9.0.27.tar.gz
WORKDIR /data/soft/
ENTRYPOINT /data/soft/apache-tomcat-9.0.27/bin/startup.sh && tail -f /dev/null
[root@192 mydocker]# docker build -t tomcat:test .
Sending build context to Docker daemon 500.2MB
Step 1/5 : FROM jdk:latest
---> d8252cab0866
Step 2/5 : ADD apache-tomcat-9.0.27.tar.gz /data/soft
---> d0f4873733b8
Step 3/5 : RUN rm -rf apache-tomcat-9.0.27.tar.gz
---> Running in 7d54b3ccd7ca
Removing intermediate container 7d54b3ccd7ca
---> 1f07735cd7da
Step 4/5 : WORKDIR /data/soft/
---> Running in 90dfd42c6134
Removing intermediate container 90dfd42c6134
---> 5704cc83ebb3
Step 5/5 : ENTRYPOINT /data/soft/apache-tomcat-9.0.27/bin/startup.sh && tail -f /dev/null
---> Running in 5dd6eef5777e
Removing intermediate container 5dd6eef5777e
---> d97a77aa1533
Successfully built d97a77aa1533
Successfully tagged tomcat:test
[root@192 mydocker]# docker run --name webserver -d -p 8080:8080 tomcat:test /bin/bash
e13e5b4d7807b5dbeec0eb55192602ed60cb289b95d82a455cdb340581aba150
[root@192 mydocker]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1093/sshd
tcp6 0 0 :::8080 :::* LISTEN 48659/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 1093/sshd
通过浏览器访问
常用指令
注意问题
COPY ADD 使用问题会设计到权限的问题如何解决权限
可以使用 COPY --chown= 或者 ADD --chown= 去解决
在使用过程中 如ADD使用了.tar.gz自动解压的功能,build执行后,包里面的权限是不会变化的。然后COPY 直接使用权限会直接更改为root。USER的使用,影响哪些使用
影响后面的RUN CMD ENTRYPOINT 命令的执行身份,注意的是 而COPY命令却不服从- WORKDIR的使用
切换目录
一个事例
RUN cd /test
RUN echo "test" >test.txt
请问最后镜像有/test/test.txt吗? 答:NO
解释:docker里边有层的概念,每个命令都是生成一个层,每个层都是独立的空间。所以第二个RUN时,工作目录并不会切换到/test下面 。
最后用一张图解释常用指令的意义^-^
原文:https://blog.51cto.com/perin/2447878
内容总结
以上是互联网集市为您收集整理的Dockerfile 定制镜像全部内容,希望文章能够帮你解决Dockerfile 定制镜像所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。