Docker-Dockerfile

本文介绍Dockerfile的特点及使用方法,包括如何通过不同命令构建镜像,并提供了一个具体的nginx镜像构建实例。

一、特点

  • 文件名不能改。

  • 用来构建镜像的宿主机端文本文件,会将相对路径下所有文件打包。

  • 每一次RUN都会在docker上新建一层,以 && 符号连接命令,这样执行后,只会创建 1 层镜像。

二、常用命令

FROM:基于基础镜像。

RUN:等同于,在终端操作的 shell 命令。

COPY:从上下文目录中复制文件或者目录到容器里指定路径。

# [--chown=<user>:<group>]:可选参数,用户改变复制到容器内文件的拥有者和属组。路径不存在则自动创建。
COPY [--chown=<user>:<group>] <源路径1>...  <目标路径>

CMD:类似于 RUN 指令,用于运行程序。CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖。

  • CMD 在docker run 时运行。
  • RUN 是在 docker build。
# 多个 CMD 指令,仅最后一个生效。
CMD ["<可执行文件或命令>","<param1>","<param2>",...] 

ENTRYPOINT:类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖。

ENTRYPOINT ["executable", "param1", "param2"]
# 多个 ENTRYPOINT 指令,仅最后一个生效。
FROM nginx

ENTRYPOINT ["nginx", "-c"] # 定参
CMD ["/etc/nginx/nginx.conf"] # 变参 

EXPOSE:声明端口。

ENV:设置环境变量。

VOLUME:设置容器与外界映射的目录。

三、脚本

vi Dockerfile
  • 制作nginx镜像

    FROM centos7
    # 维护者
    MAINTAINER adam
    
    COPY /home/adam/jdk1.8.0_191 /opt/jdk1.8.0_191
    ADD websocket.jar app.jar
    
    ENV JAVA_HOME=/opt/jdk1.8.0_191
    ENV PATH=$JAVA_HOME/bin:$PATH
    ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    EXPOSE 8080
    # ENTRYPOINT ["executable", "param1", "param2"]
    ENTRYPOINT ["java","-jar","/jenkins.war"]
    

四、构建

docker build -t nginx:test -f /Users/wangfugui/Downloads/soft/cbei_isp/Dockerfile/Dockerfile .
  • -f:指定Dockerfile路径
  • -t:指定name:tag
Docker是一种开源的容器化平台,它可以帮助开发者将应用程序和服务以容器的形式进行打包、分发和部署。而Gluster是一个分布式存储系统,它可以将多个服务器的存储空间整合在一起,形成一个统一的、可扩展的存储池。 CentOS是一种基于Red Hat Enterprise Linux(RHEL)的开源操作系统,它提供了稳定性和安全性,并且具备广泛的应用支持。 Dockerfile是用于构建Docker镜像的脚本文件,它可以定义容器的运行环境、设置启动命令等。 那么,docker-gluster-centos Dockerfile是指在CentOS系统上构建一个包含Gluster分布式存储系统的Docker镜像的脚本文件。 在docker-gluster-centos Dockerfile中,我们可以使用CentOS的官方镜像作为基础镜像,并在此基础上安装和配置Gluster分布式存储系统。可以通过使用适当的软件包管理工具(如yum)来安装Gluster软件包和依赖项。然后,可以使用Dockerfile中的指令来启动和配置Gluster节点、创建Gluster卷以及设置其他必要的参数和选项。 通过构建docker-gluster-centos Docker镜像,我们可以在任何支持Docker的环境中快速部署和运行Gluster分布式存储系统,而无需手动安装和配置。这样可以大大简化Gluster的部署过程,提高运维效率,并且能够实现更加轻量级、可移植和可扩展的存储解决方案。 总而言之,docker-gluster-centos Dockerfile是用于在CentOS系统上构建包含Gluster分布式存储系统的Docker镜像的脚本文件,使得Gluster的部署和运行变得更加简单、可靠和可扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上富贵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值