Dockerfile 构建自定义 Nginx Web 服务镜像

(一)拉取nginx镜像

root@Client my-nginx-web# docker login uhub.service.ucloud.cn ##输入注册的账号密码

root@Client my-nginx-web#docker pull uhub.service.ucloud.cn/ucloud/nginx:1.28.2

(二)编写Dockerfile

root@Client my-nginx-web#vim Dockerfile

1. 基于官方 nginx 镜像

FROM nginx:latest

2. 删除默认网页

RUN rm -rf /usr/share/nginx/html/*

3. 拷贝自己的网页文件

COPY html/ /usr/share/nginx/html/

4. 暴露 80 端口

EXPOSE 80

(三)构建镜像

root@Client my-nginx-web# docker build -t my-nginx:v1 .

+ Building 1.0s (8/8) FINISHED docker:default

=> internal load build definition from Dockerfile 0.0s

=> => transferring dockerfile: 309B 0.0s

=> internal load metadata for docker.io/library/nginx:latest 0.2s

=> internal load .dockerignore 0.0s

=> => transferring context: 2B 0.0s

=> 1/3 FROM docker.io/library/nginx:latest@sha256:7150b3a39203cb5bee612ff4a9d18774f8c7caf6399d6e8985e9 0.1s

=> => resolve docker.io/library/nginx:latest@sha256:7150b3a39203cb5bee612ff4a9d18774f8c7caf6399d6e8985e9 0.0s

=> internal load build context 0.0s

=> => transferring context: 397B 0.0s

=> 2/3 RUN rm -rf /usr/share/nginx/html/* 0.3s

=> 3/3 COPY html/ /usr/share/nginx/html/ 0.0s

=> exporting to image 0.2s

=> => exporting layers 0.1s

=> => exporting manifest sha256:023551026d0ea95b58ce3f91a1270ca23ec72e02dd7f5ffecb73b1b4f0b5fc24 0.0s

=> => exporting config sha256:956df2b430849f6fec6a0cb3d94b5c2004e3e16b68928e554c3c4e3407b4bfbb 0.0s

=> => exporting attestation manifest sha256:aa6bf9285e03f8e7ceecccd922435e31f23061eb60efe9ef038ad94f716c 0.0s

=> => exporting manifest list sha256:f7b4d6a44636daafed06b13ea47e5a0806e8e1757610735ca4cd515dcecc1240 0.0s

=> => naming to docker.io/library/my-nginx:v1 0.0s

=> => unpacking to docker.io/library/my-nginx:v1

(四)查看构建的镜像

root@Client my-nginx-web# docker images

IMAGE ID DISK USAGE CONTENT SIZE EXTRA

centos:latest a27fd8080b51 335MB 83.5MB U

centos:v1 2061d526cd3a 335MB 83.5MB U

my-nginx:v1 f7b4d6a44636 234MB 63MB

nginx:latest 7150b3a39203 237MB 65.8MB

(五)运行my-nginx:v1

root@Client my-nginx-web# docker run -d -p 8080:80 --name myweb my-nginx:v1

(六)访问网页

(七)进入容器

root@Client my-nginx-web# docker exec -it myweb /bin/bash

root@3877bac6520a:/# cat /usr/share/nginx/html/index.html

复制代码
<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>My Nginx Site</title>

</head>

<body>

    <h1>Hello Docker + Nginx!</h1>

    <p>这是我的自定义 Nginx 镜像。</p>

</body>

</html>
相关推荐
code_Bo4 分钟前
不只命令行:我把跨 Agent 会话同步做成了桌面应用
前端·javascript·后端
kyriewen17 分钟前
AI 能把页面写出来,为什么改个需求就开始崩?
前端·javascript·人工智能
涛涛ing1 小时前
2026年最值得关注的前端变化,藏在“默认值”里
前端
分布式存储与RustFS2 小时前
群晖 NAS 被 C3RB3R 锁了:本地备份一起被加密,RustFS 对象锁为什么删不掉
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
真好啊又活了一天3 小时前
服务器和虚机配置IPV6
运维·服务器·github
zixu_star3 小时前
定时任务是什么?从日常自动化到 AI 应用,软件如何自动执行任务?
运维·人工智能·自动化
AR-26710-3 小时前
Linux Day33——定时任务+lvm
linux·运维
亿元程序员3 小时前
太牛了!这AI做出来的游戏,居然还能变现!
前端
hellice4 小时前
闪传 FlashDrop 实战:我用 300 行 Node 代码做了个「4 位取件码」临时文件中转站
前端·产品
用户0829773260054 小时前
RTX 5500 MIG 踩坑记录:切分之后模型跑不起来,排错整整一下午
前端