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>
相关推荐
考虑考虑3 小时前
nginx路由重写
运维·后端·自动化运维
曹牧3 小时前
C#:空合并运算符
java·前端·数据库
小羊没烦恼!4 小时前
铁道部新客票系统设计(二)
开发语言·前端·数据库·python·oracle·c#·php
Zenova EdgeOS5 小时前
Linux 内核日志 dmesg 进阶实战:从现场过滤到持久化闭环
linux·运维·服务器
郝亚军5 小时前
ec_private.pem的生成方法
linux·运维·服务器
NendoZen6 小时前
Arch Linux解决Grub无法SAVEDEFAULT问题(uki启动问题)
linux·运维·服务器
智能直播6 小时前
RK3518:1.5G 内存 + 8G 存储,如何跑起硬件编解码、Web、AI 识别、绿幕特效
前端·人工智能·5g
Elastic 中国社区官方博客7 小时前
Elasticsearch:安装自行管理的 Elastic Stack 集群
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·全文检索
忆挽篱笙歌7 小时前
进程控制管理
linux·运维·服务器
掘金酱8 小时前
【10.24 特别活动】AI 时代,程序员的新饭碗在哪里?
前端·人工智能·后端