`
frank1998819
  • 浏览: 763948 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

Docker Dockerfile详解 (转)

 
阅读更多

目录(?)[+]

如何使用

Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等。当前目录下包含Dockerfile,使用命令build来创建新的image,并命名为edwardsbean/centos6-jdk1.7:

docker  build -t edwardsbean/centos6-jdk1.7  .

Dockerfile关键字

如何编写一个Dockerfile,格式如下:

# CommentINSTRUCTION arguments

FROM

基于哪个镜像

RUN

安装软件用

MAINTAINER

镜像创建者

CMD

Container启动时执行的命令,但是一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD.

CMD主要用于container时启动指定的服务,当Docker run command的命令匹配到CMD command时,会替换CMD执行的命令。如:
Dockerfile:

CMD echo hello world

运行一下试试:

edwardsbean@ed-pc:~/software/docker-image/centos-add-test$ docker run centos-cmd
hello world

一旦命令匹配:

edwardsbean@ed-pc:~/software/docker-image/centos-add-test$ docker run centos-cmd echo hello edwardsbean
hello edwardsbean

ENTRYPOINT

container启动时执行的命令,但是一个Dockerfile中只能有一条ENTRYPOINT命令,如果多条,则只执行最后一条

ENTRYPOINT没有CMD的可替换特性

USER

使用哪个用户跑container
如:

ENTRYPOINT ["memcached"]
USER daemon

EXPOSE

container内部服务开启的端口。主机上要用还得在启动container时,做host-container的端口映射:

docker run -d -p 127.0.0.1:33301:22 centos6-ssh

container ssh服务的22端口被映射到主机的33301端口

ENV

用来设置环境变量,比如:

ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8

ADD

将文件<src>拷贝到container的文件系统对应的路径<dest>
所有拷贝到container中的文件和文件夹权限为0755,uid和gid为0
如果文件是可识别的压缩格式,则docker会帮忙解压缩

  • 如果要ADD本地文件,则本地文件必须在 docker build <PATH>,指定的<PATH>目录下

  • 如果要ADD远程文件,则远程文件必须在 docker build <PATH>,指定的<PATH>目录下。比如:

    docker build github.com/creack/docker-firefox
    

    docker-firefox目录下必须有Dockerfile和要ADD的文件

注意:使用docker build - < somefile方式进行build,是不能直接将本地文件ADD到container中。只能ADD url file.

ADD只有在build镜像的时候运行一次,后面运行container的时候不会再重新加载了。

VOLUME

可以将本地文件夹或者其他container的文件夹挂载到container中。

WORKDIR

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

ONBUILD

ONBUILD 指定的命令在构建镜像时并不执行,而是在它的子镜像中执行
详见here

分享到:
评论

相关推荐

    Docker Dockerfile文件配置详解

    Docker Dockerfile文件配置详解

    Dockerfile及Docker-compose yml格式详解

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

    浅谈docker Dockerfile 指令 VOLUME 介绍

    本篇文章主要介绍了浅谈docker Dockerfile 指令 VOLUME 介绍 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    dockerfile详解.txt

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

    008 Dockerfile详解.mp4

    008 Dockerfile详解.mp4

    007 Dockerfile详解.mp4

    007 Dockerfile详解.mp4

    Dockerfile详解篇.doc

    "Dockerfile详解篇" 本文档详细介绍了Dockerfile的使用和应用,涵盖了Dockerfile的基本概念、语法格式、FROM指令、MAINTAINER指令、LABEL指令等知识点。 Dockerfile基本概念 Dockerfile是一个文档,客户可以基于...

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

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

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

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

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

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

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

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

    【Docker指令及Dockerfile文件编写详解】

    分类梳理的Docker API操作指令及Dockerfile文件相关命令分类梳理及最佳实践内容说明

    Docker容器详解.docx

    Docker容器详解 1 1. 介绍 1 1.1. 什么是Docker? 1 1.2. 为什么需要Docker? 1 1.3. Docker可以干嘛? 1 1.4. 什么是Dockfile? 1 1.5. 什么是Docker Compose? 5 2. 环境搭建 8 2.1. Docker环境准备 8 ...

    详解如何使用Docker部署一个web项目并打包成镜像文件

    docker基本入门以后,可以试试打包docker镜像与dockerfile了 docker镜像 docker hub仓库有2类仓库,用户仓库和顶层仓库,用户仓库由docker用户创建的,顶层仓库由docker内部的人来管理的。仓库里存放的是镜像文件,...

    Dockerfile详解与实战:构建高效容器化应用

    内容概要:本文详细介绍了Dockerfile的基本概念、语法和关键字,并通过多个实战案例展示了如何使用Dockerfile构建高效的容器化应用。文章首先讲解了Dockerfile的作用及其重要性,接着通过具体的示例演示了如何编写...

    docker详解.pdf

    docker 详解,从入门到高级。以及docker部署常用软件的详细步骤,例如tomcat ,redis,MySQL等,有需要的可以自行下载

    docker-compose配置文件中文详解

    docker-compose配置文件中文详解Compose和Docker兼容性: Compose 文件格式有3个版本,分别为1, 2.x 和 3.x 目前主流的为 3.x 其支持 docker 1.13.0 及其以上的版本常用参数: version # 指定 compose 文件的版本 ...

    详解docker中Dockerfile指令创建镜像

    主要介绍了详解docker中Dockerfile指令创建镜像,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Dockerfile的详解

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

    Docker基础教程之Dockerfile语法详解

    Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker...

Global site tag (gtag.js) - Google Analytics