!
也想出现在这里? 联系我们
创意广告

(7)Dockerfile概述与编写教程

图片[1]-(7)Dockerfile概述与编写教程-安全小天地

上一篇介绍了一下docke如何实现数据持续化,即文件挂载,这篇来介绍一下dockerfile文件编写,方便构造镜像

(6)容器数据持久化-安全小天地
(6)容器数据持久化-安全小天地
沐寒的头像-安全小天地大咖2023年1月9日 17:46
08217

什么是Dockerfile?

Docker通过Dockerfile自动构造镜像,Dockerfile是一个包含用于组建镜像的文本文件,由一条一条的指令组成。

实现过程是:逐行执行

FROM centos:latest
LABEL maintalner anquanclub
RUN yun install vim -y
COPY run.sh /usr/bin
EXPOSE 80
CMD["run.sh"]
  • FROM 引用一个镜像,即该镜像是基于centos镜像构造的
  • LABEL 给镜像设置标签
  • RUN 容器里面执行命令 安装vim
  • COPY 添加文件到镜像里面
  • EXPOSE 声明暴露端口80
  • CMD 构建容器时间执行的命令
指令描述
FROM构建新镜像是基于哪个镜像
LABEL标签
RUN构建镜像时运行的Shell命令
COPY拷贝文件或目录到镜像中
ADD解压压缩包并copy
ENV设置环境变量
USER为RUN、CMD、和ENTRYPOINT执行命令指定运行用户
EXPOSE声明容器运行的服务端口
WORKDIR为RUN、CMD、ENTRYPOINT、COPY和ADD设置工作目录
CMD运行容器时默认执行,如果有多个CMD指令,最后一个生效
Dokcerfile常用命令

案例

我们使用Dockerfile来构建一个nginx容器,并运行,查看是否与官方的有差异

FROM centos:7
RUN yum install epel-release -y && \
    yum install nginx -y
EXPOSE 80
CMD ["nginx","-g","daemon off;"]

该文件的意思就是:基于centos7,安装epel-release和nginx,需要暴露的端口是80,然后容器运行时执行关闭nginx后台运行也就是让nginx前台执行。

然后进行构建操作

docker build -t nginx:v1 .

使用build命令,进行构造,注意后面有个 . 代表为当前目录

  • -t 设置镜像的名称
  • -f 指定Dockerfile文件的位置
图片[2]-(7)Dockerfile概述与编写教程-安全小天地

然后我们构建容器,查看是否可以运行

图片[3]-(7)Dockerfile概述与编写教程-安全小天地

这里访问提示403,是因为yum安装nginx路径发生了变化,现在在/usr/share/nginx/html,直接挂载一个文件进来即可


「渗透云记」公众号里主要记录我每天的所思所想,我会坚持更新质量不错的文章,感兴趣的小伙伴可以扫描下方二维码,谢谢支持! 安全小天地 - 公众号 - 渗透云记
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容