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>
相关推荐
LJianK13 分钟前
服务器、节点 、 集群、分布式
运维
姚不倒10 分钟前
etcd 学习系列(四):存储模型 —— WAL 和 Snapshot 是如何配合的
运维·etcd
come112341 小时前
Nginx `location` 配置说明(后端开发版)
运维·nginx
SkyWalking中文站8 小时前
SkyWalking 11 与 BanyanDB 0.11:在存储引擎内部实现 Trace 尾部采样
运维·监控·自动化运维
姚不倒8 小时前
etcd 学习系列(二):集群架构 —— 3 节点是如何工作的
运维·架构·etcd
宿6748 小时前
vue3-包管理器
前端·vue.js
@PHARAOH9 小时前
WHAT - Remix 入门和基本实践:理解两套产物
前端·remix
pt10439 小时前
网络自动化Python课程:Cisco PyATS网络自动化测试框架
运维·自动化
mayaairi9 小时前
Vue2 生命周期完全指南:从创建到销毁的8个钩子函数
前端·javascript·vue.js
xy345310 小时前
axure9.0 如何打造一个计时器(简单版)
前端·ui·html·axure·原型·产品设计