栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Dockerfile镜像制作

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 .



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/882279.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号