Dockerd自定义镜像——Dockerfile

一、Dockerfile自定义镜像:

  Dockerfile 是一个文本文件,其内包含了一条条的**指令(Instruction);

二、Dockerfile创建:

  1)在一个空白目录中,建立一个文本文件,并命名为 `Dockerfile`:

  2)在Dockerfile文件内写指令;

三、构建镜像:

  docker build [选项] <上下文路径/URL/->

   1Docker上下文构建:docker build -t MyImage .

    //最后一个.点表示当前目录,用于指定上下文(Context)

    上下文:该目录会打包发给docker服务器,docker文件内的操作只能是./当前文件形式,不能是../或者/等;

  2)Git repo构建:docker build https://github.com/twang2218/gitlab-ce-zh.git#:8.14

  3)tar压缩包构建:docker build http://server/context.tar.gz

三、Dockerfile指令:

  1FROM指定基础镜像;

    //scratch:FROM scratch;表示一个空白镜像;

  2)RUN:

    1)shell格式:RUN <命令>;

    2)exec格式:RUN ["可执行文件", "参数1", "参数2"];

      //Dockerfile中每一个指令都会建立一层,则需要把多行合并:

      每句语句用/反斜杠结尾,第二局开始用&&符号开头;

     

  3COPY复制;

    COPY 源路径 目标路径

    <源路径>:可以是多个,甚至可以是通配符;//COPY home* /mydir/

    <目标路径>:

      (1)容器内的绝对路径;

      (2)工作目录的相对路径;//用WORKDIR指令设置工作路径;

    //copy指令会把各种源数据保留;

  4ADD

    ADD指令和`COPY`的格式和性质基本一致。

    但是在 `COPY` 基础上增加自动解压tar压缩包的功能。

  5ENV环境变量;

    1)ENV <key> <value>;

    2)ENV <key1>=<value1> <key2>=<value2>…

    使用变量:$key

  6)EXPOSE:声明端口;

    EXPOSE <端口1> [<端口2>...]

    docker run -P:会自动随机映射EXPOSE的端口;

    -p <宿主端口>:<容器端口>和EXPOSE不同:

      -p是暴露端口给外界访问;

      EXPOSE仅仅是声明容器打算使用什么端口,并不会自动在宿主进行端口映射。

  7)VOLUME:指定数据卷

    //数据卷的作用就是将一些动态的数据和本地文件/文件夹进行绑定,在读写时使用的是本地的文件/文件夹。

    docker run -p 80:8080 -d  -v /home/ROOT:/usr/local/tomcat/webapps/ROOT/ tomcat

    docker run -v 绝对路径的文件夹:要挂载到的容器内的文件夹/  镜像名

  8)WORKDIR:

    WORKDIR <工作目录路径>

    //dockerfile中cd无效,需要指定工作目录;

  9CMD

    运行一个文件,并传入参数;

    CMD ["catalina.sh", "run"]:运行catalina.sh文件并传入参数run;

  10)ENTRYPOINT:

    同cmd类似,但是cmd只能执行一次,entrypoint可以执行多次;

原文地址:https://www.cnblogs.com/Tractors/p/11337313.html

时间: 2024-10-09 23:08:51

Dockerd自定义镜像——Dockerfile的相关文章

利用Dockerfile自定义镜像-图解轻松学Docker&K8S

>>> 点我开始视频学习 <<< 你好,我是老齐,本节咱们来学习使用docker file配置文件,构建属于自己的镜像.回到咱们的控制台,在这首先来看一下.上一节课我们学习了如何从远程仓库来安装tomcat 镜像.对于这个tomcat来说,只要运行一个非常简单的命令. Docker run -p 8000 tomcat 马上一个全新的tomcat就会给我们完成自动部署,但这里也衍生出来一个问题,作为当前的tomcat他并不是一个有效的应用,因为我们并没有在上面发布任何属

docker 笔记(基本概念、快速运行、自定义镜像)

1.docker docker是一个打包应用的工具 非常强大,能把操作系统也打在包里,进行无差别部署和运行. 所以docker也被认为是建立在操作系统上的虚拟机. 2.基本概念 镜像(image): 类似操作系统的镜像,包括一个完整可运行的系统,操作系统.基础组件.应用程序都可以打包在一个镜像中. 容器(container): 容器是某一个docker镜像的执行实例,可以启动.关闭.删除,可以理解成正一个linux系统,同一台机器上的多个container互相隔离. 3.简单使用 #安装dock

Docker之创建自定义镜像

简单介绍 之前使用docker run或者docker pull使用了Docker Hub上面已经构建好的的镜像,当然也可以自己基于基础镜像自定义镜像. 实际操作 1.可以使用docker run或者docker pull进行镜像的拉取和运行. 2.使用docker search ×××指令进行查找镜像 指令:sudo docker search fedora 结果 这里展示了有关fedora的镜像,显示了镜像名称,描述,星级,是否为官方以及是否自动构建信息. 3.构建镜像 构建镜像可以使用两个

Docker | 第五章:构建自定义镜像

前言 上一章节,主要是介绍了下Dockerfile的一些常用命令的说明.我们知道,利用Dockerfile可以构建一个新的镜像,比如运行Java环境,就需要一个JDK环境的镜像,但直接使用公共的镜像时,一般上大小都比较大.所以本章节就主要结合Dockerfile文件及commit方式,构建属于自己的镜像,同时对镜像进行压缩和优化,同时也是对Dockerfile知识的一个实践. 利用Dockerfile构建自定义镜像 选定基础镜像 准备JRE版本 编写Dockerfile 实践:运行SpringB

五十四.自定义镜像及仓库、持久化存储 、 Docker网络架构

1. 制作自定义镜像(base基础镜像,搭建共性环境) 基于centos镜像使用commit创建新的镜像文件 基于centos镜像使用Dockerfile文件创建一个新的镜像文件 1.1 使用镜像启动容器 1)在该容器基础上修改yum源 docker_images]# docker run -it centos 345 /]# rm -rf /etc/yum.repos.d/* 345 /]# vi /etc/yum.repos.d/dvd.repo [dvd] name=dvd baseurl

docker基础——自定义镜像、创建私有仓库、查看 docker 运行状态

一.自定义镜像 1,案例1 要求:请自定义一个 docker 镜像,基于 hub.c.163.com/library/centos,要求创建出来的镜像在生成容器的时候,可以直接使用 ifconfig 命令 自定义镜像,输入 vim Dockerfile: RUN rpm --import FROM hub.c.163.com/library/centos MAINTAINER suyunanyan RUN rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-Cent

04 Docker 制作自定义镜像包

制作自定义镜像包的两种方式 1.创建容器并对容器进行修改,然后打包容器为镜像 2.使用Dockerfile编排镜像 自定义镜像 1.创建一个容器 docker run -itd centos 2.进入容器进行修改配置 docker exec -it 容器id bash 停止容器,不是必须的 3.创建镜像并验证 docker commit 容器id 镜像名称:标签 4.打包镜像 docker save 镜像名称 > 包名.tar 使用 Dockerfile 编排镜像 给容器配置 yum 源 查看宿

44_自定义镜像及仓库、持久化存储 、 Docker网络架构

1. 制作自定义镜像(base基础镜像,搭建共性环境)基于centos镜像使用commit创建新的镜像文件基于centos镜像使用Dockerfile文件创建一个新的镜像文件 1.1 使用镜像启动容器 1)在该容器基础上修改yum源docker_images]# docker run -it centos345 /]# rm -rf /etc/yum.repos.d/*  345 /]# vi /etc/yum.repos.d/dvd.repo[dvd]name=dvdbaseurl=ftp:/

Azure VMSS ---- PowerShell创建自定义镜像的VMSS集群

前面一篇文章介绍了如何用PowerShell创建标准镜像的VMSS集群.http://www.cnblogs.com/hengwei/p/7391178.html 本文将介绍,如何用PowerShell创建自定义镜像的VMSS集群. 1 创建VM,对其进行个性化配置,比如安装httpd,增加Date Disk等,并把此VM捕获成Image 2 以这个Image创建VMSS集群 一 创建并捕获Image 这个操作在前面的文章中也介绍过: http://www.cnblogs.com/hengwei