当前位置: 首页 > news >正文

初试Docker Desktop工具

文章目录

  • 1. 概述
  • 2. 下载
  • 3. 安装
  • 4. 注册
  • 5. 登录
  • 6. 启动
  • 7. 容器
  • 8. 运行容器
    • 8.1 运行容器的镜像
    • 8.2 获取示例应用
    • 8.3 验证Dockerfile文件
    • 8.4 拉取Alpine精简镜像
    • 8.5 创建镜像
    • 8.6 运行容器
    • 8.7 查看前端
  • 9. 访问静态资源
    • 9.1 本地静态资源
    • 9.2 创建服务器脚本
    • 9.3 修改Dockerfile文件
    • 9.4 重新构建镜像
    • 9.5 删除容器
    • 9.6 运行容器
    • 9.7 访问静态资源
  • 10. 实战小结

1. 概述

  • Docker Desktop 是 Docker 官方为 Windows 与 macOS 提供的集成开发环境,内置 Docker Engine、Docker CLI、Docker Compose、Kubernetes 与资源管理界面。它通过 WSL 2(Windows)或 HyperKit(macOS)实现轻量级虚拟化,允许在本地一键构建、运行、调试 Linux 或 Windows 容器。安装后,镜像与容器在各用户间共享,支持代理、资源限额、自动更新及扩展插件,是个人开发者和小团队进行容器化开发、测试与学习的首选工具。

2. 下载

  • 下载网址:https://docs.docker.com/desktop/setup/install/windows-install/
    在这里插入图片描述

  • Docker Desktop for Windows - x86_64下载到本地
    在这里插入图片描述

3. 安装

  • 双击安装程序图标进入向导,等待几分钟,安装完成
    在这里插入图片描述

4. 注册

  • 启动Docker Desktop
    在这里插入图片描述
  • 单击【Create an account】按钮,进入注册页面
    在这里插入图片描述
  • 输入个人注册信息
    在这里插入图片描述
  • 单击【Sign up】按钮,注册成功,跳转到登录页面
    在这里插入图片描述

5. 登录

  • 输入用户名
    在这里插入图片描述
  • 单击【Continue】按钮,输入密码
    在这里插入图片描述
  • 单击【Continue】按钮,登录成功
    在这里插入图片描述

6. 启动

  • 单击【Proceed to Docker Desktop】按钮,报错说WSL需要更新
    在这里插入图片描述
  • 执行命令:wsl --update,更新WSL
    在这里插入图片描述
  • 单击【Restart】按钮,重新打开Docker Desktop
    在这里插入图片描述

7. 容器

  • 容器(Container)是 Docker 中可移植、自包含的运行单元,打包应用及其全部依赖、配置与文件系统,形成镜像的实例化对象。它共享主机操作系统内核,但拥有独立的进程、网络、文件与用户空间,因此启动秒级、资源占用低、环境一致性高。容器可在开发、测试、生产间无差异迁移,实现“一次构建,到处运行”。

8. 运行容器

8.1 运行容器的镜像

  • 我们准备用Dockerfile和一个示例应用来创建镜像
    在这里插入图片描述

8.2 获取示例应用

  • 执行命令:git clone https://github.com/docker/welcome-to-docker
    在这里插入图片描述
  • 执行命令:cd welcome-to-docker
    在这里插入图片描述

8.3 验证Dockerfile文件

  • 打开应用目录下的Dockerfile文件
    在这里插入图片描述

8.4 拉取Alpine精简镜像

  • 执行命令:docker pull node:22-alpine,拉取官方Node.js v22的Alpine精简镜像
    在这里插入图片描述
  • 输入用户名:huawei2025
    在这里插入图片描述
  • 输入密码,注意,屏幕并不回显密码
    在这里插入图片描述
  • 执行命令:winget install GnuWin32.Grep (Windows 11 已内置winget)
    在这里插入图片描述
  • 配置环境变量(C:\Program Files (x86)\GnuWin32\bin
    在这里插入图片描述
  • 于是可以在任意位置访问grep.exe程序
    在这里插入图片描述
  • 重新打开命令行窗口
    在这里插入图片描述
  • 执行命令:cd welcome-to-docker,进入应用目录
    在这里插入图片描述
  • 执行命令:grep --version,查看grep的版本
    在这里插入图片描述
  • 执行命令:docker images | grep node,确认已存在node标签为22-alpine的镜像
    在这里插入图片描述
  • Docker Desktop窗口,切换到Images选项卡,可以查看拉取的镜像 - node: 22-alpine
    在这里插入图片描述

8.5 创建镜像

  • 在应用目录里执行命令:docker build -t welcome-to-docker .
    在这里插入图片描述
  • 查看构建的镜像 - welcome-to-docker在这里插入图片描述

8.6 运行容器

  • 找到运行容器的按钮
    在这里插入图片描述
  • 单击运行按钮,弹出配置窗口
    在这里插入图片描述
  • 配置容器名、端口、挂载卷和环境变量
    在这里插入图片描述
  • 现在配置:运行一个叫my-welcome-app的容器,把本地D:\howard文件夹挂载到容器内/app/howard,并通过 http://localhost:3000访问它,同时告诉应用“我现在在生产环境运行”。
  • 单击【Run】按钮
    在这里插入图片描述

8.7 查看前端

  • 访问http://localhost:3000
    在这里插入图片描述

9. 访问静态资源

9.1 本地静态资源

  • D:\howard里放一张图片docker.png在这里插入图片描述

9.2 创建服务器脚本

  • 在应用根目录里创建server.js
    在这里插入图片描述
// server.js
const express = require('express');
const path = require('path');
const app = express();
const PORT = process.env.PORT || 3000;// 把 /app/howard 映射成 /static
app.use('/static', express.static('/app/howard'));// 托管 React 构建产物
app.use(express.static(path.join(__dirname, 'build')));// 兜底路由:所有未匹配的请求都返回 React 的 index.html
app.get('*', (_req, res) => {res.sendFile(path.join(__dirname, 'build', 'index.html'));
});app.listen(PORT, () => {console.log(`Server is listening on port ${PORT}`);
});

9.3 修改Dockerfile文件

  • 让它先构建React,再用server.js启动
    在这里插入图片描述
# 构建阶段
FROM node:22-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build# 运行阶段
FROM node:22-alpine
WORKDIR /app
# 安装生产依赖
COPY package*.json ./
RUN npm ci --only=production && npm cache clean --force
# 拷入构建产物和后端脚本
COPY --from=build /app/build ./build
COPY server.js ./EXPOSE 3000
CMD ["node", "server.js"]

9.4 重新构建镜像

  • 执行命令:docker build -t welcome-to-docker .
    在这里插入图片描述

9.5 删除容器

  • 执行命令:docker rm -f my-welcome-app
    在这里插入图片描述

9.6 运行容器

  • 配置运行的容器
    在这里插入图片描述
  • 单击【Run】按钮
    在这里插入图片描述

9.7 访问静态资源

  • 访问http://localhost:3000/static/docker.png
    在这里插入图片描述

10. 实战小结

  • 本次实操在 Windows 11 上成功安装 Docker Desktop,通过 WSL 2 与 Hyper-V 双后端完成 Linux 容器环境搭建。注册并登录 Docker Hub 后,拉取 node:22-alpine 镜像,基于示例应用构建自定义镜像 welcome-to-docker,实现 React 前端与 Express 后端一体化部署。通过挂载本地 D:\howard 目录并映射端口 3000,实现静态资源访问与开发调试。过程中完成 WSL 更新、grep 工具安装及 Dockerfile 多阶段构建优化,验证了“一次构建,到处运行”的容器化优势,为后续微服务与 CI/CD 实践奠定坚实基础。
http://www.lryc.cn/news/626398.html

相关文章:

  • 如何能成功在centos7下安装nodejs18+以上版本
  • TDengine IDMP 运维指南(5. 使用 Helm 部署)
  • 不止效率工具:AI 在创意领域的 “叛逆生长”—— 从文案生成到艺术创作的突围
  • 关于AKShare接口数据,快速查询命令大全
  • 从基础到本质:文件 IO 操作全解析
  • Deepresearch Agents:下一代自动研究智能体的架构革命与产业实践
  • 源码编译部署 LAMP 架构详细步骤说明
  • 中金所股指期货交易规则
  • 微算法科技(NASDAQ: MLGO)引入高级区块链DSR算法:重塑区块链网络安全新范式
  • 从零开始的云计算生活——第四十七天,细水长流,kubernetes模块之ingress资源对象
  • day075-MySQL数据库服务安装部署与基础服务管理命令
  • ROADS案例实践:制造业的设备物联网与预测性维护
  • 有序二叉树的删除
  • python中selenium怎么使用
  • java八股文-JVM相关面试题-参考回答
  • 深入分析Linux kobject 的工作原理与实现机制
  • 模拟tomcat接收GET、POST请求
  • AI 自动化编程 trae 体验 页面添加富编辑器
  • JVM基础知识总结
  • JVM讲解
  • Next.js 监控与分析:跟踪应用健康状况
  • Seaweed-APT:AI视频生成模型,单步生成2秒钟的1280x720 24fps视频
  • 学习设计模式《二十三》——桥接模式
  • 微控制器的工作原理和应用
  • 【Linux系统】匿名管道以及进程池的简单实现
  • 从API调用到功能落地:直播美颜SDK动态贴纸在直播平台中的快速集成攻略
  • 扩散模型之(二)基于分数的扩散模型 SMLD
  • 芯科科技即将重磅亮相IOTE 2025深圳物联网展,以全面的无线技术及生态覆盖赋能万物智联
  • 基于STM32的APP遥控视频水泵小车设计
  • 【国内电子数据取证厂商龙信科技】隐私增强技术