Dockerfile镜像制作

Dockerfile常用指令


  • FROM

​ 语法:FROM :

​ 指明构建的新镜像是来自于哪个基础镜像,如果没有选择tag,那么默认值为latest

FROM centos
	如果不以任何镜像为基础,那么写法为:FROM scratch。官方说明:scratch镜像是一个空镜像,可以用于构建busybox等超小镜像,可以说是真正的从零开始构建属于自己的镜像
  • LABEL

    语法:LABEL = = =…

    功能是为镜像指定标签。也可以使用LABEL来指定镜像作者。

    LABEL maintainer="mrhelloworld.com"
    
  • RUN

    语法:RUN

    构建镜像时运行的shell命令,比如构建的新镜像中我们想在/usr/local目录下创建一个java目录

    RUN mkdir -p /usr/local/java
    
  • ADD

    语法:ADD…

    拷贝文件或目录到镜像中。src可以是一个本地文件或者是一个本地压缩文件,压缩文件会自动解压。还可以是一个url,如果把src写成一个url,那么ADD就类似于wget命令,然后自动下载和解压。

  • COPY

    语法:COPY …

    拷贝文件或目录到镜像中。用法同ADD,只是不支持自动下载和解压

    COPY jdk-18_linux-x64_bin.tar.gz /usr/local/java
    
  • EXPOSE

    语法:EXPOSE [/…]

    暴露容器运行时的监听端口给外部,可以指定端口是监听TCP还是UDP,如果未指定协议,则默认为TCP.

    EXPOSE 80 443 8080/tcp
    
    如果想使得容器与宿主机的端口有映射关系,必须在容器启动的时候加上-p参数。
    
  • ENV

    语法:ENV 添加单个,ENV=…添加多个。

    设置容器内环境变量。

    ENV JAVA_HOME /usr/local/javajdk-18.0.1.1/
    

Dockerfile实践

#创建文件
mkdir -p /usr/local/dockerfile

#进入dockerfile,编写Dockerfile
[root@web-server dockerfile]# vi Dockerfile

#编写Dockerfile内容文件如下:
#指明构建的镜像是来自于centos:latest基础镜像
FROM centos:latest
#通过镜像标签声明了作者信息
LABEL maintainer="mrhelloworld.com"
#设置工作目录
WORKDIR /usr/local
#新镜像构建成功以后创建指定目录
RUN mkdir -p /usr/local/java &&  mkdir -p /usr/local/tomcat
#拷贝文件到镜像中并解压
ADD jdk-18_linux-x64_bin.tar.gz /usr/local/java
ADD apache-tomcat-10.0.20.tar.gz /usr/local/tomcat
#暴露容器运行时的8080监听端口给外部
EXPOSE 8080
#设置容器内JAVA_HOME环境变量
ENV JAVA_HOME /usr/local/java/jdk-18.0.1.1/
ENV PATH $PATH:$JAVA_HOME/bin
#启动容器时启动tomcat
CMD ["/usr/local/tomcat/apache-tomcat-10.0.20/bin/catalina.sh","run"]
----------------------------------------------------------------------------
#将tomcat和jdk拷贝至dockerfile
[root@web-server dockerfile]# cp /root/jdk-18_linux-x64_bin.tar.gz /usr/local/dockerfile/
[root@web-server dockerfile]# cp /root/apache-tomcat-10.0.20.tar.gz /usr/local/dockerfile/

#
[root@web-server dockerfile]# docker build -f /usr/local/dockerfile/Dockerfile -t mycentos .


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fihmtvdW-1652177701790)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220509172217221.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3NU875sA-1652177701791)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220509172429036.png)]

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值