![图片[1]-(7)Dockerfile概述与编写教程-渗透云记 - 专注于网络安全与技术分享](https://b.encenc.com/wp-content/uploads/2023/01/09b9d78bf5115344.png)
上一篇介绍了一下docke如何实现数据持续化,即文件挂载,这篇来介绍一下dockerfile文件编写,方便构造镜像
什么是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指令,最后一个生效 |
案例
我们使用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概述与编写教程-渗透云记 - 专注于网络安全与技术分享](https://b.encenc.com/wp-content/uploads/2023/01/d2b5ca33bd182212.png)
然后我们构建容器,查看是否可以运行
![图片[3]-(7)Dockerfile概述与编写教程-渗透云记 - 专注于网络安全与技术分享](https://b.encenc.com/wp-content/uploads/2023/01/d2b5ca33bd183454.png)
这里访问提示403,是因为yum安装nginx路径发生了变化,现在在/usr/share/nginx/html,直接挂载一个文件进来即可
© 版权声明
渗透云记的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
渗透云记拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!
本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。详情见本站的“免责声明”如果有侵权之处请第一时间联系我们删除。敬请谅解!E-mail:admin@encenc.com
THE END











请登录后查看评论内容