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>
相关推荐
AOwhisky8 小时前
Redis 学习笔记(第三期):持久化与主从复制
运维·数据库·redis·笔记·学习·云计算
问心无愧05139 小时前
ctf show web入门160 161
前端·笔记
c238569 小时前
Linux C++ 进度条进阶美化与工程化封装
linux·运维·服务器
李小白669 小时前
第四天-WEB服务器基本原理,IIS服务
运维·服务器·前端
humcomm9 小时前
AI编程时代新前端职位
前端·ai编程
2401_834636999 小时前
Nginx 从入门到实战:静态 / 动态站点、PHP 部署与反向代理全解析
运维·nginx·php
好家伙VCC10 小时前
Web Components主题热切换方案揭秘
java·前端
甲维斯10 小时前
Kimi版超级玛丽效果“惊人”,配额不足5厘米!
前端·人工智能
aosky10 小时前
一台电脑配置多个 SSH Key 对应不同的 GitHub 账号
运维·ssh·github
hboot10 小时前
AI工程师第一课 - Python
前端·后端·python