目录:
1.dockerfile指定基础镜像的命令
2.dockerfile指定镜像名称
3.dockerfile基础镜像 作用
4.根据dockerfile创建镜像
5.简述利用Dockerfile文件构建自定义镜像的过程
6.docker列出所用镜像命令为
7.dockerfile指令详解
8.编写完成dockerfile之后,创建镜像使用的命令是
9.docker查看镜像的dockerfile
10.dockerfile指定本地镜像
1.dockerfile指定基础镜像的命令
1.构建步骤- 编写一个dockerfile文件- 通过docker build构建文件的一个镜像- docker run 运行镜像- docker push 发布镜像———————–
2.dockerfile指定镜像名称
2.dockerfile文件编写基本步骤和注意事项- 每个保留关键字必须大写- 执行顺序由上到下- 再文件种用“#”表示注释- 每一个指令都会区创建一个新的镜像层,并提交————-3.常用的Dockerfile指令
3.dockerfile基础镜像 作用
**注:常用指令引用了大神的,链接为:Dockerfile指令详解 – Ruthless – 博客园1.FROM:格式为FROM image或FROM image:tag,并且Dockerfile中第一条指令必须是FROM指令,且在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令。
4.根据dockerfile创建镜像
2. MAINTAINER:格式为MAINTAINER user_name user_email,用于声明镜像是谁写的一般写姓名+邮箱available for sale格式为RUN command或 RUN [“EXECUTABLE”,”PARAM1″,”PARAM2″…..],前者在shell终端中运行命令,/bin/sh -c command,例如:/bin/sh -c “echo hello”;后者使用exec执行,指定其他运行终端使用RUN[“/bin/bash”,”-c”,”echo hello”]每条RUN指令将当前的镜像基础上执行指令,并提交为新的镜像,命令较长的时候可以使用\来换行。
5.简述利用Dockerfile文件构建自定义镜像的过程
4.CMD支持三种格式:CMD [“executable”,”param1″,”param2″],使用exec执行,这是推荐的方式CMD command param1 param2 在/bin/sh中执行。
6.docker列出所用镜像命令为
CMD [“param1″,”param2”] 提供给ENTERYPOINT的默认参数CMD用于指定容器启动时执行的命令,每个Dockerfile只能有一个CMD命令,多个CMD命令只执行最后一个若容器启动时指定了运行的命令,则会覆盖掉CMD中指定的命令。
7.dockerfile指令详解
5.EXPOSE格式为 EXPOSE port [port2,port3,…],例如EXPOSE 80这条指令告诉Docker服务器暴露80端口,供容器外部连接使用在启动容器的使用使用-P,Docker会自动分配一个端口和转发指定的端口,使用-p可以具体指定使用哪个本地的端口来映射对外开放的端口。
8.编写完成dockerfile之后,创建镜像使用的命令是
6.ENV格式为:EVN key value 用于指定环境变量,这些环境变量,后续可以被RUN指令使用,容器运行起来之后,也可以在容器中获取这些环境变量例如ENV word helloRUN echo $word。
9.docker查看镜像的dockerfile
7.ADD格式:ADD src dest该命令将复制指定本地目录中的文件到容器中的dest中,src可以是是一个绝对路径,也可以是一个URL或一个tar文件,tar文件会自动解压为目录8.COPY格式为:COPY src desc。
10.dockerfile指定本地镜像
复制本地主机src目录或文件到容器的desc目录,desc不存在时会自动创建9.ENTRYPOINT格式有两种:ENTRYPOINT [“executable”,”param1″,”param2″]ENTRYPOINT command param1,param2 会在shell中执行。
用于配置容器启动后执行的命令,这些命令不能被docker run提供的参数覆盖和CMD一样,每个Dockerfile中只能有一个ENTRYPOINT,当有多个时最后一个生效10.VOLUME格式为 VOLUME [“/data”]。
作用是创建在本地主机或其他容器可以挂载的数据卷,用来存放数据11.USER格式为:USER username指定容器运行时的用户名或UID,后续的RUN也会使用指定的用户要临时使用管理员权限可以使用sudo。
在USER命令之前可以使用RUN命令创建需要的用户例如:RUN groupadd -r docker && useradd -r -g docker docker12.WORKDIR格式: WORKDIR /path
为后续的RUN CMD ENTRYPOINT指定配置工作目录,可以使用多个WORKDIR指令,若后续指令用得是相对路径,则会基于之前的命令指定路径13.ONBUILD格式ONBUILD [INSTRUCTION]。
该配置指定当所创建的镜像作为其他新建镜像的基础镜像时所执行的指令例如下面的Dockerfile创建了镜像A:ONBUILD ADD . /appONBUILD RUN python app.py则基于镜像A创建新的镜像时,新的Dockerfile中使用from A 指定基镜像时,会自动执行ONBBUILD指令内容,等价于在新的要构建镜像的Dockerfile中增加了两条指令:。
FROM AADD ./appRUN python app.py3.一个Dockerfile文件案例FROM centos #基于centos镜像进行增加 MAINTAINER xiec #我的姓名和邮箱 COPY readme.txt /usr/local/readme.txt #将本地的readme.txt拷贝到容器中 ADD jdk-8u131-linux-x64.tar.gz /usr/local #将本地的jdk安装包拷贝到对应容器目录中 ADD apache-tomcat-8.5.47.tar.gz /usr/local #将本地的tomcat安装包拷贝到容器目录中 RUN yum -y install vim #再容器中执行这个命令安装vim指令 ENV MYPATH /usr/local #配置环境变量 WORKDIR $MYPATH # 设置镜像进去的工作路径 ENV JAVA_HOME /usr/local/jdk1.8.0_131 #配置jdk和tomcat的环境变量 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.47 ENV CATALINA_BASH /usr/local/apache-tomcat-8.5.47 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin EXPOSE 8080 #容器对外暴漏的端口 CMD /usr/local/apache-tomcat-8.5.47/bin/startup.sh && tail -F /url/local/apache-tomcat-8.5.47/bin/logs/catalina.out # 再run运行这个容器的时候会运行的命令,用于启动tomcat
4.通过docker build命令就可以构建镜像docker build -f dockerfile的文件名 -t 镜像名称:镜像版本(不指定为最新) 构建完成后,通过docker run命令运行即可测试
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容