首页 > 其他分享 >docker---dockerfile自定义镜像指令

docker---dockerfile自定义镜像指令

时间:2024-02-07 17:23:33浏览次数:26  
标签:自定义 tar 指定 gz --- nginx games 镜像 docker

dockerfile指令

  • FROM #指定所基于的镜像名称及其标签来创建新镜像。

  • RUN #在镜像中执行命令。

  • ADD #将文件或目录复制到镜像中。可以使用 URL 作为源文件。

  • COPY #与 ADD 类似,将文件或目录复制到镜像中,但不支持 URL 作为源文件。

  • CMD #指定运行容器时要执行的命令,如果在运行时指定了命令,则覆盖 CMD。

  • ENTRPOINT #指定容器启动时要运行的命令,可以将容器作为可执行程序使用。

  • ENV #设置环境变量,可以在后续的指令中使用。

  • ARG #定义构建时候用到的一些参数,可以通过 --build-arg 参数传入。

  • WORKDIR #设置镜像的工作目录。

  • ONBUILD #用于定制子镜像,当子镜像被作为其他镜像的基础镜像时,ONBUILD 中的指令会被触发。

  • USER #设置运行容器时要使用的 UID。

  • HEALTHCHECK #检查容器是否健康,并可以指定检查的方式和间隔时间。

  • EXPOSE #声明在运行时将要使用的端口。

  • VOLUME #创建一个挂载点,可以在主机和容器之间共享数据。

  • LABEL #为镜像添加元数据,可以帮助用户更好地理解镜像的属性、用途等信息。

-------->

  • MAINTAINER #用于指定 Dockerfile 作者的信息。

  • SHELL #用于指定 Dockerfile 中后续 RUN 命令所使用的 shell 环境变量,通常用于指定非默认的 shell。

dockerfile演示

[root@centos201 centos]# cat Dockerfile 
# 指定基础镜像
FROM centos:7

# 声明作者信息,官方已弃用,建议使用LABEL
MAINTAINER  xxxxxx

# LABEL可以基于key=value方式指定信息
LABEL school=bd \
      class=01 \
      address=北京市 \
      office=www.lzh.com \
      email=xxxxx.com \


# 修改centos镜像的yum源为国内地址,并安装nginx,sshd服务(运行时,不能阻塞RUN指令,否则终止编译)
RUN sed -e 's|^mirrorlist=|#mirrorlist=|g' \
        -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \
        -i.bak \
        /etc/yum.repos.d/CentOS-*.repo && \
    yum -y install epel-release && \
    sed -e 's!^metalink=!#metalink=!g' \
        -e 's!^#baseurl=!baseurl=!g' \
        -e 's!https\?://download\.fedoraproject\.org/pub/epel!https://mirrors.tuna.tsinghua.edu.cn/epel!g' \
        -e 's!https\?://download\.example/pub/epel!https://mirrors.tuna.tsinghua.edu.cn/epel!g' \
        -i /etc/yum.repos.d/epel*.repo && \
    yum -y install nginx openssh-server initscripts && \
    rm -rf /var/cache/yum


# 指定工作目录,若不指定则默认路径为"/"
WORKDIR /usr/local/nginx/html 

# 将宿主机的文件拷贝到容器的指定路径
COPY config/games.conf  /etc/nginx/conf.d/
COPY scripts/start.sh /

# COPY softwares/test-games.tar.gz /usr/local/nginx/html/
## RUN tar xf /usr/local/nginx/html/test-games.tar.gz -C /usr/local/nginx/html/
### RUN cd /usr/local/nginx/html && tar xf test-games.tar.gz
#### RUN cd /usr/local/nginx/html && tar xf test-games.tar.gz && rm -f test-games.tar.gz
# RUN tar xf test-games.tar.gz && rm -f test-games.tar.gz

# 如果文件为tar包,会自动解压并删除源文件。
ADD softwares/test-games.tar.gz /usr/local/nginx/html/

# 暴露容器的80端口
EXPOSE 80 22 

# 将容器的指定路径进行持久化,会产生随机(匿名)存储卷
VOLUME /usr/local/nginx/html/

# 向容器传递环境变量,基于key=value的语法格式
ENV school=bd \
    class=01 \
    ADMIN=123456

# 容器启动时的命令
# CMD ["tail","-f","/etc/hosts"]
# CMD ["nginx","-g","daemon off;"]
CMD ["bash","-x","/start.sh"]
[root@centos201 centos]# 

标签:自定义,tar,指定,gz,---,nginx,games,镜像,docker
From: https://www.cnblogs.com/liuzhonghua1/p/18011100

相关文章

  • docker的优势和劣势
    优势:1.轻量级快速:Docker利用容器技术,相比传统虚拟化技术更加轻量级,启动速度快,资源消耗低,使得应用可以更快地部署和运行。2.跨平台:Docker支持跨平台运行,可以在不同的操作系统上运行,例如Linux、Windows和macOS等,为开发和部署提供了更大的灵活性。3.隔离性:Docker容器提......
  • docker-compose
    docker-compose简介DockerCompose是Docker官方提供的一个用于定义和运行多个Docker容器的工具。它允许用户使用一个单独的文件(通常称为docker-compose.yml)来配置应用程序的服务,并使用一条命令启动、停止和管理整个应用程序的容器。以下是DockerCompose的主要功能和特点......
  • 【教3妹学编程-算法题】3028. 边界上的蚂蚁
    3妹:2哥,今天春节回的去吗?最火春运遭遇最强暴雪:冻雨像刨冰2哥:听说湖北的高速、高铁都已经停了。3妹:是啊,如果是雪还好办,可以除雪,冻雨就比较难办了。2哥:哎,好多人都滞留的高铁站了,没法回家了3妹:也有好多人滞留在高速上面,急的像热锅上的蚂蚁,惨。2哥:3妹,要不别回去了吧,我们就地过......
  • 无涯教程-RegExp.prototype.sticky函数
    lastIndexRegExp对象的读/写属性。对于设置了"g"属性的正则表达式,它包含一个整数,该整数指定紧随RegExp.exec()和RegExp.test()方法找到的最后一个匹配项之后的字符位置,这些方法使用此属性作为它们进行下一次搜索的起点。RegExp.prototype.sticky-语法RegExpObject.lastInde......
  • 在Windows上使用.NET部署到Docker 《让孩子们走出大坑》
    折腾Docker有几天了,整别的都没这个糟心。目前已经顺利部署运行起来了。顺便给大家分享下处理在Windows上使用.NET部署到Docker的相关问题解决方法。 1. Docker无法安装问题(下图是网上找了个类似的安装失败截图,页面大致一样,就是提示内容是DockerDesktop只能运行在win10......
  • Go语言的100个错误使用场景(30-40)|数据类型与字符串使用
    目录前言4.控制结构4.1忽视元素在range循环中是拷贝(#30)4.2忽略在range循环中如何评估表达式(#31)4.3忽略在range中使用指针元素的影响(#32)4.4对map遍历的错误假设(#33)4.5忽略break的作用(#34)4.6在循环中使用defer(#35)5.字符串5.1不理解rune的概念(#36)5.2不准确的字......
  • 【转帖】基础软件开发 -- 神秘的MESI和坑爹的LockFree
    https://zhuanlan.zhihu.com/p/681321783 又开新坑,继续掰扯基础软件开发。这里已经更新到第二季了,欲先睹为快的可以到这里:基础软件开发新坑--神秘的MESI和坑爹的LockFree(一)基础软件开发新坑--神秘的MESI和坑爹的LockFree(二)正文开始:在《HPC(高性能计算第一篇):一文......
  • THUPC2024-初赛
    哈哈,被干爆了。拖了cdqz哥后腿。题目使用协议来自THUPC2024(2024年清华大学学生程序设计竞赛暨高校邀请赛)初赛。以下『本仓库』皆指THUPC2024初赛官方仓库任何单位或个人都可以免费使用或转载本仓库的题目;任何单位或个人在使用本仓库题目时,应做到无偿、公开,严禁使用这......
  • el-upload分片上传到七牛
    参考: https://blog.csdn.net/So_cute_girl/article/details/118606647需要自定义上传方法http-request,用七牛的分片上传<template><el-uploaddrag:limit="1"action="https://up.qiniup.com":multiple="false"accept=".mp4":d......
  • IS-IS 基本配置
    拓扑图配置1)ISIS多区域sysnameAR1#isis1network-entity49.0001.0000.0000.0001.00#interfaceGigabitEthernet0/0/0ipaddress12.1.1.1255.255.255.0isisenable1#interfaceLoopBack0ipaddress1.1.1.1255.255.255.255isisenable1sysnameAR2#isis......