`
wx1569020408
  • 浏览: 26847 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Dockerfile详解

 
阅读更多

ADD

ADD命令有两个参数,源和目标。它的基本作用是从源系统的文件系统上复制文件到目标容器的文件系统。如果源是一个URL,那该URL的内容将被下载并复制到容器中。

COPY

格式为:COPY

复制本地主机的 (为 Dockerfile 所在目录的相对路径,文件或目录) 为容器中的 。目标路径不存在时,会自动创建。当使用本地目录为源目录时,推荐使用 COPY。

RUN

RUN命令是Dockerfile执行命令的核心部分。它接受命令作为参数并用于创建镜像。不像CMD命令,RUN命令用于创建镜像(在之前commit的层之上形成新的层)。有两种方式:

1)RUN   例如:RUN sh -c 'source $HOME/.bashrc ; echo $HOME'

2)RUN ["executable", "param1", "param2"]  例如:

一个Dockerfile中可以有多个RUN命令

CMD

和RUN命令相似,CMD可以用于执行特定的命令。和RUN不同的是,这些命令不是在镜像构建的过程中执行的,而是在Container启动时执行的命令,一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD。

3种执行格式:

- `CMD ["executable","param1","param2"]` ,`exec`格式,推荐使用这种格式。例如:CMD ["java", "-jar", "spring-boot-maven-docker.jar"]

- `CMD ["param1","param2"]`,作为`ENTRYPOINT`的默认参数。

- `CMD command param1 param2`,`shell`格式。

ENTRYPOINT

有两种格式:

ENTRYPOINT [“executable”, “param1”, “param2”]

ENTRYPOINT command param1 param2 (shell 中执行)

配置容器启动后执行的命令,并且不会被 docker run 提供的参数覆盖。而CMD则会

每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个 ENTRYPOINT 时,只有最后一个生效。例如:

ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /userApp.jar" ]

ENV

ENV命令用于设置环境变量。这些变量以”key=value”的形式存在,会被后续 RUN 指令使用,并在容器运行时保持。

EXPOSE

EXPOSE用来指定端口,使容器内的应用可以通过端口和外界交互。

FROM

FROM命令可能是最重要的Dockerfile命令。该命令定义了使用哪个基础镜像启动构建流程。基础镜像可以为任意镜像。如果基础镜像没有被发现,Docker将试图从Docker image index来查找该镜像。FROM命令必须是Dockerfile的首个命令。

MAINTAINER

建议这个命令放在Dockerfile的起始部分,虽然理论上它可以放置于Dockerfile的任意位置。这个命令用于声明作者,并应该放在FROM的后面。

LABEL

key=value,可以多个。

USER

使用哪个用户跑container。

VOLUME

可以将本地文件夹或者其他container的文件夹挂载到container中,用于让你的容器访问宿主机上的目录。

WORKDIR

切换目录用,可以多次切换(相当于cd命令),对RUN,CMD,ENTRYPOINT生效。

【实例】

FROM node

RUN mkdir -p /home/nodejs/user   //在镜像中创建目录

WORKDIR /home/nodejs/user //cd到镜像中的目录

COPY . /home/nodejs/user //拷贝本机中当前目录内容到镜像中目录

RUN npm config set registry https://registry.npm.taobao.org  //设置镜像中npm registry

RUN npm info underscore

RUN npm install  //镜像中执行npm install

RUN npm run build  //镜像中执行编译

ENV NODE_EVN production  //设置镜像中环境变量

ENV USER_ENV test

ENV USER_PORT 3200

ENV SVR_USER_API_BASE_URL http://test.user.com:8080

EXPOSE 3200

CMD ["npm", "start"]


转载于:https://my.oschina.net/superwind20/blog/1524138

分享到:
评论

相关推荐

    008 Dockerfile详解.mp4

    008 Dockerfile详解.mp4

    007 Dockerfile详解.mp4

    007 Dockerfile详解.mp4

    dockerfile详解.txt

    Dockerfile 指令详解,提供常用的Docker指令,指定基础镜像,执行命令,复制文件,设置环境变量,指定工作目录,指定用户,LABEL,ARG,SHELL等指令 操作镜像

    Docker学习指南-03(Dockerfile详解)

    详细介绍Docker的每一个只是细节,本册中主要介绍了Dockerfile的编写,各个指令的语法与用法

    Docker学习视频(讲师马永亮)10集之第7集:Dockerfile详解-1部分

    本集主要讲如何修改Docker容器镜像中的配置信息,如nginx,docker下载一个nginx镜像后,很显然该镜像里面的conf不满足用户 需求,肯定需要被修改,那么如何修改呢,是本集的主要内容。

    Docker学习视频(讲师马永亮)10集之第8集:Dockerfile详解-2部分

    本集主要讲如何用docker命令制作镜像并发布运行等系列操作。

    Dockerfile的详解

    "Dockerfile详解" Dockerfile是容器化技术Docker的核心组件之一,它是一个包含用于组合映像的命令的文本文档。通过读取Dockerfile中的指令,Docker可以自动生成映像。下面是Dockerfile的详细解释: 一、基础镜像...

    docker入门实战与dockerfile详解

    本课程主要内容为docker入门实战操作与dockerfile的相关问题详解,希望学完之后对你有所收获

    dockerFile文件详解1

    "Dockerfile 文件详解" Dockerfile 文件是 Docker 项目中最重要的文件之一,它定义了镜像的构建过程。 Dockerfile 中的每一行命令都可以生成一个临时镜像层,从而构建出最终的镜像。下面是 Dockerfile 文件中常用的...

    Dockerfile及Docker-compose yml格式详解

    Dockerfile 组成结构、编写规范、注意事项、常用命令 及Docker-compose yml详解

    『现学现忘』Docker基础 — 34、DockerFile文件详解.doc

    " Docker基础 — DockerFile 文件详解" 该文档对 DockerFile 文件进行了详细的解释,从 DockerFile 文件的概念到其构建过程、基本结构、注意事项等方面进行了讲解。通过该文档,可以了解 DockerFile 文件的重要性...

    docker容器技术基础入门视频.zip

    目录网盘文件永久链接 01-docker容器技术基础入门 02-Docker基础用法 03-Docker镜像管理基础 ...07-Dockerfile详解 08-Dockerfile详解 09-Docker私有registry 10-Docker的系统资源限制及验正 Docker.txt

    docker技术基础视频.rar

    01 docke容器技术基础入门zip,网盘文件,永久链接 02- Docker基础用法zip ...07- Dockerfile详解zp 08- Dockerfile详解zip 09-DockerFAFregistry zip 10- Docker的系统资源限制及验正zip Docker笔记

    docker容器技术基础入门培训视频.rar

    01- dockers容器技术基础入门zip,网盘文件,永久链接 02- Docker基础用法zp ...07- Dockerfile详解zip 08- Dockerfile详解,zip 09- Docke私有 registry.zip 10 Docker的系统资源限制及验正zip Docker. txt. zip

    docker技术基础视频.zip

    目录网盘文件永久链接 01-docker容器技术基础入门.mp4 02-Docker基础用法.mp4 ...07-Dockerfile详解.mp4 08-Dockerfile详解.mp4 09-Docker私有registry.mp4 10-Docker的系统资源限制及验正.mp4 Docker.txt.pdf

    虚拟化容器docker视频.zip

    目录网盘文件永久链接 1-docker容器技术基础入门.mp4 02-Docker基础用法.mp4 ...07-Dockerfile详解.mp4 08-Dockerfile详解.mp4 09-Docker私有registry.mp4 10-Docker的系统资源限制及验正.mp4 Docker.txt.pdf

    docker一键安装hadoop集群

    【Dockerfile详解】 Dockerfile 是一个文本文件,包含了构建 Docker 映像的指令序列。在这个场景中,Dockerfile 被用来创建一个包含 Hadoop 集群环境的 Docker 映像。以下是一些可能的关键指令: 1. `FROM`: 指定...

    02-docker-基础.pdf

    docker入门基础,带目录 1.背景 2.docker简介 3.docker镜像 4.docker容器 5.docker仓库 6.docker数据卷 7.dockerfile详解

Global site tag (gtag.js) - Google Analytics