新建一个目录,目录下存放Dockfile及相关文件,我们以nginx为例,
Dockfile文件内容如下:
FROM nginx MAINTAINER BFW ADD html.tar.gz /usr/share/nginx/html ADD conf.tar.gz /etc/nginx EXPOSE 80 ENTRYPOINT nginx -g "daemon off;"
文件解释:
FROM nginx:这条指令设置了该Dockerfile的基础镜像为官方的nginx镜像。Nginx是一个高性能的HTTP和反向代理服务器,这意味着您将从一个预先配置好的、可运行nginx服务器的镜像开始构建您的自定义镜像。
MAINTAINER BFW:MAINTAINER指令用于声明镜像的作者或维护者的信息,此处作者名称为BFW。请注意,这个指令已经被官方弃用,更推荐使用LABEL指令替代来添加元数据。
ADD html.tar.gz /usr/share/nginx/html:ADD指令将本地的html.tar.gz压缩包添加到镜像中的/usr/share/nginx/html目录,并自动解压。如果该目录不存在,Docker会自动创建。通常这个目录是nginx服务器托管静态文件的位置。
ADD conf.tar.gz /etc/nginx:这条指令的作用和上一条相似,它将本地的conf.tar.gz配置文件压缩包添加并解压到了镜像中nginx的配置文件目录/etc/nginx。通常用于自定义nginx服务器的配置。
EXPOSE 80:EXPOSE指示Docker镜像预期会在运行时监听的端口,在这里是80端口。它是HTTP服务的标准端口。虽然EXPOSE不会让容器端口自动对外开放,但它对于人或脚本阅读Dockerfile是一个有用的声明。
ENTRYPOINT nginx -g "daemon off;":ENTRYPOINT指定容器启动时执行的命令。在这个例子中,ENTRYPOINT被设置为启动nginx并以前台模式运行(daemon off;)。通常nginx在后台作为守护进程运行,但当运行在Docker容器中时,您希望nginx保持在前台运行,这样当nginx主进程被停止时,容器也会停止。
最后在当前目录下运行命令后镜像就构建好了。docker build -t mynginx:v1.0 -f Dockerfile .通过docker images来查看就能看到了。
网友回复
如何编写一个chrome插件实现多线程高速下载大文件?
cdn版本的vue在网页中出现typeerror错误无法找到错误代码位置怎么办?
pywebview能否使用webrtc远程控制共享桌面和摄像头?
pywebview6.0如何让窗体接受拖拽文件获取真实的文件路径?
如何在linux系统中同时能安装运行apk的安卓应用?
python有没有离线验证码识别ocr库?
各家的ai图生视频及文生视频的api价格谁最便宜?
openai、gemini、qwen3-vl、Doubao-Seed-1.6在ui截图视觉定位这款哪家更强更准?
如何在linux上创建一个沙箱隔离的目录让python使用?
pywebview如何使用浏览器自带语音识别与webspeech 的api?