通过dockerfile 生成自定义nginx镜像

通过dockerfile生成自定义nginx镜像

!!!docker 必须在linux环境下才能进行如果你是window则需要装虚拟机

新建一个文件名字为Dockerfile,无需后缀 文件完整名就是Dockerfile

编写dockerfile

java 复制代码
FROM nginx
RUN echo 'hello nginx!!!!' > /usr/share/nginx/html/index.html

切换到test1目录执行构建动作。

执行docker build -t nginx:v3 .

以下示例,通过目录下的 Dockerfile 构建一个 nginx:v3(镜像名称:镜像标签)。

注 :最后的 . 代表本次执行的上下文路径

上一节中,有提到指令最后一个 . 是上下文路径,那么什么是上下文路径呢?

$ docker build -t nginx:v3 .

上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。

解析:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。

如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。

注意:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。

**Dockerfile的文件名默认为Dockerfile,**这是Docker官方推荐的命名方式。当我们在构建镜像的时候,Docker会默认在当前目录下查找名为Dockerfile的文件,并根据文件中的内容构建镜像。但是,如果你想给Dockerfile取一个自定义的名字,也是完全可以的。

当我们需要使用自定义的Dockerfile名字时,我们需要在构建镜像的时候通过-f或--file参数指定Dockerfile的路径。下面是一个示例:

java 复制代码
docker build -f my-dockerfile .

查看是否成功 docker images

运行镜像

docker run --name nginx-test -p 8080:80 -d nginx:v3

参数说明:

  • --name nginx-test:容器名称。
  • -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
  • -d nginx: 设置容器在在后台一直运行。

访问成功

相关推荐
xixiaoyunya8 分钟前
虚拟机备份怎么做:镜像级与文件级搭配的完整实操方案
linux·运维·网络
阿明614 分钟前
进程替换【Linux】
linux·运维·服务器
sunoo-22919 分钟前
【嵌入式Linux驱动学习】Day1-Day2 全流程梳理:环境搭建→U-Boot→内核→根文件系统→驱动基础
linux·运维·驱动开发·笔记·学习·阿里云·恩智浦
YonyouHRSaaS1 小时前
从安全、信创、运维三方面看,人力资源管理系统哪种部署方式更适合企业HR?
运维·安全·hr系统·人力资源管理系统·hr saas·人事管理系统
倔强的石头1061 小时前
【Linux指南】动静态库系列(十二):库工程发布与错误排查:从能跑到可维护
linux·运维·服务器
wdfk_prog1 小时前
LWIP教程 03:从 `low_level_input()` 到 `pbuf_free()`——`pbuf` 的数据视图、Chain 与引用计数
运维·网络·笔记·学习
掉进电商坑三年没爬出来的东叔1 小时前
云服务器搭建个人网站实战:从零到公网访问,含域名HTTPS
运维·服务器·https
IT大白鼠2 小时前
彭大帅的AI运维助手跨出 Linux:全面接管 Windows 服务器
运维·服务器·人工智能
reasonsummer2 小时前
【办公类-131-05】20261007中2班周计划制作(原资料Word单元格不统一 失败)
运维·服务器
Mikko72 小时前
JVM 线上排查实战(六):JFR 怎么用?JDK 8 要不要加 UnlockCommercialFeatures、jfr 命令在哪、录的文件为什么读不了
java·运维·jvm·后端