精华内容
下载资源
问答
  • Dockerfile

    2021-01-07 07:58:35
    博客内容传送门Dockerfile简介Docker制作jdk镜像 传送门 Docker入门 Docker数据卷 Dockerfile简介 dockerfile 是一个文本格式的配置文件, 用户可以使用 Dockerfile 来快速创建自定义的镜像。另外,使用Dockerfile去...
  • dockerFile

    2020-06-07 16:56:42
    dockerFile

    dockerFile

    展开全文
  • DockerFIle

    多人点赞 热门讨论 2020-12-25 14:12:13
    DockerFIle 是什么? DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本 构建三步骤: 编写DockerFile文件 docker build docker run Centos Dockerfile文件案例: FROM scratch ADD...

    DockerFIle

    是什么?

    DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本

    构建三步骤:

    编写DockerFile文件 docker build docker run

    Centos Dockerfile文件案例:

    FROM scratch
    ADD centos-7-x86_64-docker.tar.xz /
    ​
    LABEL \
        org.label-schema.schema-version="1.0" \
        org.label-schema.name="CentOS Base Image" \
        org.label-schema.vendor="CentOS" \
        org.label-schema.license="GPLv2" \
        org.label-schema.build-date="20201113" \
        org.opencontainers.image.title="CentOS Base Image" \
        org.opencontainers.image.vendor="CentOS" \
        org.opencontainers.image.licenses="GPL-2.0-only" \
        org.opencontainers.image.created="2020-11-13 00:00:00+00:00"
    ​
    CMD ["/bin/bash"]

    DockerFile文件过程解析

    • Dockerfile内容基础知识

      • 每条保留字指令都必须为大写字母且后面要跟随至少一个参数

      • 指令按照从上到下 顺序执行

      • #表示注释

      • 每条指令都会创建一个新的镜像层,并对镜像进行提交

    • Docker执行DockerFile的大致流程

      • docker从基础镜像运行一个容器

      • 执行一条指令并对容器做出修改

      • 执行类似docker commit的操作提交一个新的镜像层

      • docker再基于刚提交的镜像运行一个新容器

      • 执行dockerfile中的下一条指令直到所有指令都执行完成

    • 总结:

      • 从应用软件角度来看,Dockerfile Docker镜像 Docker容器 分别代表软件的三个不同阶段

      • DockerFile 是软件的原材料

      • Docker镜像是软件的交付品

      • Docker容器则可以认为是软件的运行态

      • DockerFile 面向开发 Docker镜像成为交付标准 Docker容器则涉及部署与运维 三者不可缺一,合力充当Docker体系的基石

    DockerFile体系结构

    - FROM   基础镜像 当前新镜像是基于哪个镜像的
    ​
    - MAINTAINER 镜像维护者的姓名和邮箱地址
    ​
    - RUN  容器构建时需要运行的命令
    - EXPOSE  当前容器对外暴露出的端口
    - WORKDIR 指定在创建容器后,终端默认登录的进来工作目录,一个落脚点
    - ENV  用来在构建镜像过程中设置环境变量
    ​
    - ADD  将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
    ​
    - COPY  类似ADD  拷贝文件和目录到镜像中  将从构建上下文目录中<源路径> 的文件/目录复制到新的一层的镜像内的<目标路径>位置
    ​
    - VOLUME 容器数据卷 用于数据保存和持久化工作
    ​
    - CMD  指定一个容器启动时要运行的命令  Dockerfile中可以有多个CMD命令,但只有最后一个生效,CMD会被docker run 之后的参数替换。
    ​
    - ENTRYPOINT  指定一个容器启动时要运行的命令     ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数
    ​
    - ONBUILD  当构建一个被继承的 Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

     

    image-20201223095145916

    展开全文
  • dockerfile

    2015-04-09 09:55:49
  • DockerFile

    2021-01-02 13:52:04
    DockerFile前言DockerFileDockerfile的基本结构基础镜像信息指定基础镜像维护者信息镜像操作指令总结 前言 今天为大家分享的是Docker中DockerFile的基本使用相关知识点~ DockerFile DockerFile是一个文本格式的...

    前言

    今天为大家分享的是Docker中DockerFile的基本使用相关知识点~

    DockerFile

    DockerFile是一个文本格式的配置文件, 用户可以使用 Dockerfile 来快速创建自定义的镜像

    Dockerfile的基本结构

    基础镜像信息

     FROM
    	指定哪种镜像为新镜像的基础镜像,比如ubuntu,centos
    

    指定基础镜像

    FROM centos:latest
    

    并且必须是第一条指令

    维护者信息

    MAINTAINER
    	指明该镜像的作者和其电子邮件
    

    例如:MAINTAINER xxx “xxx@xxx.com”

    镜像操作指令

    USER
    指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户

    WORKDIR
    在构建镜像时,指定镜像的工作目录
    WORKDIR /usr/local/java默认为/

    (COPY/ADD)
    COPY单纯的复制
    ADD复制之后还会对文件进行提取和解压等操作
    ADD jdk-8u221-linux-x64.tar.gz /usr/local/java/

    EVN
    配置环境变量
    ENV JAVA_HOME=/usr/local/java/jdk1.8.0_221
    ENV CLASSPATH=.:JAVAHOME/lib/dt.jar:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
    ENV PATH=JAVAHOME/bin:JAVA_HOME/bin:PATH

    EXPOSE
    指定容器要暴露的端口

    VOLUME
    用来向基于镜像创建的容器添加数据卷

    RUN
    在新镜像内部要执行的命令,比如安装一些软件、配置一些基础环境,可使用\来换行

    容器启动时执行指令

    CMD、
    比如:CMD [“java”,"-jar",“eureka-server-cluster.jar”,“spring.profiles=peer1”]
    指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。

    ENTRYPOINT
    配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。每个 Dockerfile 中只能有一个 ENTRYPOINT ,当指定多个时,只有最后一个起效

    结论 ENTRYPOINT 不能覆盖掉执行时的参数,CMD 可以掉覆盖默认的参数

    使用Dockerfile基于centos创建JDK8的镜像

    0、启动虚拟机,进入centos

    1、创建文件夹上传jdk的安装包,和在同级目录下编写Dockerfile文件

    mkdir  dockerfile
    

    在这里插入图片描述
    2、进入该文件夹

    cd  dockerfile
    

    在这里插入图片描述
    3、通过rz上传jdk压缩包
    在这里插入图片描述
    此时ls一下,就可以看到已经成功上传的jdk压缩包了!
    在这里插入图片描述
    3、此时新建一个jdk的目录 再次上传jdk的压缩包
    在这里插入图片描述

    4、在jdk目录下编写Dockerfile文件

    touch  dockerfile
    

    在这里插入图片描述

    ls
    

    在这里插入图片描述
    5、使用vi dockerfile进入自定义的dockerfile文件

    vi Dockerfile
    

    在这里插入图片描述
    编写的dockerfile文件中的内容

    		#1.指定基础镜像,并且必须是第一条指令
    		FROM centos:latest
    
    		#2.指明该镜像的作者和其电子邮件
    		MAINTAINER sunny "2403923308@qq.com"
    		
    		#3.在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录
    		WORKDIR /usr/local/java
    		
    		#4.一个复制命令,把jdk安装文件复制到镜像中,语法:ADD <src>... <dest>,注意:jdk*.tar.gz使用的是相对路径
    		
    		ADD jdk-8u221-linux-x64.tar.gz /usr/local/java/
    		
    		#5.配置环境变量
    		ENV JAVA_HOME=/usr/local/java/jdk1.8.0_221
    		ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    		ENV PATH=$JAVA_HOME/bin:$PATH
    

    如图
    在这里插入图片描述
    编写后:wq保存并退出~

    6、执行Dockerfile文件,构建jdk8的镜像

    docker build -t jdk8:v1.0 .
    

    .表示使用当前路径的 Dockerfile 进行构建-t jdk8:v1.0 给新构建的镜像取名为 jdk8, 并设定版本为 v1.0
    在这里插入图片描述
    7、查看镜像

    docker  images
    

    在这里插入图片描述
    8、创建并启动容器

    docker run -it -d --name tomcat01 jdk8:v1.0 /bin/bash
    

    在这里插入图片描述

    9、进入容器
    在这里插入图片描述
    10、检查是否有问题

    java -version
    

    在这里插入图片描述
    此时可以看到jdk8的版本号,说明jdk8的自定义镜像就构建好啦~

    基于Alpine的镜像构建容器

    1、没有指定版本,这里下载最新版本

    docker pull alpine
    

    在这里插入图片描述
    2、查看全部镜像

    docker images
    

    在这里插入图片描述

    3、显示所有容器

    docker ps -a
    

    在这里插入图片描述
    4、运行alpine的可执行文件

    docker run -itd --name alpine01 alpine:latest /bin/sh
    

    在这里插入图片描述
    5、再次查看所有容器

    在这里插入图片描述
    6、执行此命令
    在这里插入图片描述
    7、ls(查看linux环境下的容器)

    ls
    

    在这里插入图片描述
    8、退出

    exit
    

    在这里插入图片描述

    总结

    Docker中的一部分配置文件的使用都是基于在Linux的学习之上的,已经学习Linux的开发人员估计也和我一样有这种心领神会的感觉吧!

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,290
精华内容 17,316
关键字:

dockerfile