Docker之Nginx前端部署(Windows版-x86_64(AMD64)-离线)

需求:部署的Windows电脑(x86_64)是内网,所以需要提前在有网的Windows电脑(x86_64)上下载Nginx镜像,然后内网电脑加载镜像后即可运行Vue项目。

Windows 主流架构:x86_64(AMD64) 和 ARM64;

Linux 主流架构:x86_64(AMD64) 和 ARM64(AArch64)。

一、查看容器Containers与Images镜像

1、容器Containers

注意:当前nginx 容器目前还处于运行状态,Docker 不允许直接删除正在运行的容器,必须先停止容器。

bash 复制代码
# 第一步:停止运行中的 nginx 容器
docker stop nginx

# 第二步:删除已停止的容器
docker rm nginx

2、Images镜像

镜像正在被某个容器使用,必须先删除使用它的容器才能继续删除镜像。

注意:删镜像前先把相关容器删除。

3、清空Nginx相关容器与镜像


二、拉取Nginx最新版本镜像

1、运行nginx容器


bash 复制代码
docker run -d --name nginx -p 8085:85 -v "E:/test/dist:/usr/share/nginx/html/dist" -v "E:/test/nginx.conf:/etc/nginx/conf.d/default.conf" nginx

因为现在docker里没有Nginx容器所以会自动下载最新版本的Nginx镜像然后运行该容器。

步骤 1:自动拉取 nginx 镜像

因为本地没有 nginx 镜像,Docker 会先从官方仓库(Docker Hub)下载 nginx:latest 镜像(默认拉取 latest 标签),终端会显示下载进度:

步骤 2:创建并启动 nginx 容器

镜像下载完成后,Docker 会按照你指定的参数创建并启动容器:

--name nginx:给容器命名为 nginx(这也是为什么第一步删不存在的容器报错不影响 ------ 这里会新建);

-p 8085:85:将主机 8085 端口映射到容器 85 端口;

-v "E:/test/dist:/usr/share/nginx/html/dist":将主机 E:/test/dist 目录挂载到容器内指定路径;

-v "E:/test/nginx.conf:/etc/nginx/conf.d/default.conf":将主机的 nginx.conf 配置文件挂载为容器的默认配置;

-d:后台运行容器。

2、下载镜像

①方法1

bash 复制代码
# 导出 nginx 镜像为本地文件(比如保存到 E盘)
docker save -o E:\nginx-image.tar nginx:latest


②方法2

三、离线部署

1、加载镜像

把之前下载的Nginx镜像拷贝到离线的Windows电脑上,运行命令:

bash 复制代码
docker load -i E:\nginx-image.tar

可以看到Nginx镜像已经成功加载进来了。

2、运行Nginx容器

可以看见,Nginx容器成功启动了,现在可以打开浏览器,访问 http://localhost:8085

3、补充说明

Nginx版本其实是Linux x86 架构的,但是Nginx 也能在 Windows x86 上离线运行镜像。
Docker之Windows与Linux不同架构部署理解

相关推荐
陈随易29 分钟前
VSCode的Copilot扩展支持接入DeepSeek,Kimi了!
前端·后端·程序员
我不是外星人2 小时前
有了 Harness Engineering ,真的还需要研发工程师吗?
前端·后端·ai编程
IT_陈寒4 小时前
JavaScript的闭包把我坑惨了,说好的内存会自动回收呢?
前端·人工智能·后端
Jackson__5 小时前
分享一个横向滚动案例,带悬停暂停,通用性很强
前端
MariaH6 小时前
git rebase的使用
前端
_柳青杨6 小时前
深入理解 JavaScript 事件循环
前端·javascript
阡陌Jony6 小时前
关于前端性能优化的一些问题:
前端
用户600071819107 小时前
【翻译】简化 TSRX
前端
IT乐手8 小时前
佛德角逼平西班牙,国足还有啥借口?
前端
ping某8 小时前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx