李明
|
1. 利用Dockerfile创建镜像 什么是Dockerfile? 定义:Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile快速创建自定义镜像。 基本结构: Dockerfile由一行行的命令语句组成。并且支持以#开头的注释行。一般Dockerfile分为四个部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时的指令。 Dockerfile示例: #This is a Dockerfile #Author:liming #第一行必须指定基础镜像 FROM ubuntu #维护者信息 MAINTAINER <394498036@qq.com> #镜像的操作指令 RUN apt-get update RUN apt-getinstall -y nginx RUN echo “\ndaemonoff:” >> /etc/nginx/nginx.conf #容器启动时的指令 CMD /usr/sbin/nginx 操作一下: 首先创建目录testDockerfile并进入
vi Dockerfile
创建命令: docker build –t =“<镜像名称>”. 注意:执行此命令要和Dockerfile在同级目录,文件名称必须为Dockerfile。命令后面的”.”表示在当前目录下执行。
2 .Dockerfile指令集 1 FROM 格式为 FROM 或:。 第一条指令必须为FROM指令,用于指定基础镜像。 2 MAINTAINER 格式为 MAINTAINER ,指定维护者信息。 3 RUN 格式为 RUN ,会在shell终端运行命令。 4 EXPOSE 格式为 EXPOSE [ ...],容器需要暴露的端口号。镜像启动可以通过 –P 或 -p 进行端口映射的绑定。 5 ENV 格式为 ENV 。 指定一个环境变量,可以被后续的RUN引用,并且在容器中记录该环境变量。 6 ADD 格式为 ADD 。 该命令将复制指定的到容器中的。其中可以是Dockerfile所在目录的一个相对路径;也可以是url,还可以是tar文件(自动解压)。 7 VOLUME 格式为 VOLUME [path]。 创建一个可以从本地主机或其他容器挂载点,一般用来存放需要保持的数据。 8 USER 格式为 USER 。 指定运行容器时的用户名,后续的RUN也会指定该用户。 9 WORKDIR 格式为 WORKDIR 。 指定工作空间,运行完WORKDIR后,后续执行的RUN、CMD、ENTRYPOINT都会在此目录下执行。 10 COPY 格式为 COPY 。 复制本地主机的到容器中的,目标路径不存在时,会自动创建。 当使用本地目录为源目录时,推荐使用COPY。 11 CMD 推荐格式为 CMD [“executable”,”param1”,”param2”] 。 作为ENTRYPOINT的默认参数为 CMD[”param1”,”param2”]。 指定容器的启动命令,每个Dockerfile只能有一条CMD命令,如果指定多条,只有最后一条会执行。 用户启动容器时指定运行命令,会覆盖掉Dockerfile中的CMD命令。 12 ENTRYPOINT 格式为 ENTRYPOINT [“executable”,”param1”,”param2”]。 配置容器启动后的命令,可被docker run提供的--entrypoint参数覆盖。 每个Dockerfile只能有一条ENTRYPOINT命令,如果指定多条,只有最后一条会执行。
3 .容器内安装工具的方法
4 .Dockerfile最佳实践 1 错误定位 每个Dockerfile的指令可以生成新的一层镜像,如果通过Dockerfile创建镜像出错,可以根据出错所在步骤的上一层启动容器,然后手工执行出错层的命令,以达到调试目的。 2 好的使用习惯 http://dockone.io/article/131 http://dockone.io/article/132
|
2018-07-21 09:31:08