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>
相关推荐
lichenyang4536 小时前
从零开始写 HarmonyOS Web 容器:先让 ArkWeb 加载本地 H5
前端
kyriewen7 小时前
一个看不见的撇号,让Claude Code追踪了中国开发者三个月
前端·ai编程·claude
莫生灬灬7 小时前
DY联系人聊天Web面板支持获取联系人/聊天记录/发送消息
前端·chrome·websocket·c#
一拳一个娘娘腔7 小时前
【后渗透-Linux篇】Linux 提权与逃逸:从 www-data到 root的蜕变
linux·运维·服务器
jieyucx7 小时前
零基础通关:Shell 编程核心语法全景详解
linux·运维·编程·shell
郑州光合科技余经理7 小时前
海外外卖平台源码改造实战——多语言核心代码实现
java·开发语言·前端·后端·mysql·架构·php
杨运交7 小时前
[045][Crypto模块]设计一个可扩展的加解密框架:策略模式与工厂模式实战
linux·运维·策略模式
一tiao咸鱼7 小时前
前端转 agent # 02 - FastAPI 框架入门与原理
前端·python
wanghowie7 小时前
LangGraph4j 落地(二)— ReAct 多步工具与 trace 扩展
前端·react.js·前端框架
大家的林语冰8 小时前
Rust 再次打败 Go,Astro 7 首发,什么叫“万物皆可锈化“!
前端·javascript·性能优化