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

容器化平台Docker初识

Docker 是一个容器化平台,可以让你打包、分发和运行应用程序。它的核心思想是通过容器技术,让应用程序在任何环境下都能以一致的方式运行。


通俗易懂的理解

  1. 快餐盒的比喻:

    • 假设你做了一顿饭(开发了一个应用程序),而朋友在另一个城市想吃到完全一样的饭。
    • 传统方式:告诉朋友所需的食材和步骤(在新环境安装依赖和配置)。
    • Docker 的方式:你把饭装进一个快餐盒(容器),朋友收到后直接吃(运行),不需要准备任何材料。
  2. 开发环境的统一:

    • 在你的电脑上运行的代码,可能在别人的电脑或服务器上跑不起来,因为环境不同。
    • Docker 打包了代码和环境配置,确保无论在哪里运行,结果都是一样的。

Docker 的主要使用场景

  1. 开发环境统一: 开发、测试和生产环境保持一致。
  2. 部署简单: 应用程序以容器形式打包,一键部署到任何支持 Docker 的平台。
  3. 快速启动: 容器启动比虚拟机快得多。
  4. 资源隔离: 每个容器都是独立的,互不干扰。

使用 Vue 项目部署来举例

假设我们有一个 Vue 项目,想用 Docker 部署到服务器上。
1. 安装 Docker
  • Linux(以 Ubuntu 为例):
    sudo apt update
    sudo apt install docker.io -y
    sudo systemctl start docker
    sudo systemctl enable docker
    
  • Windows/Mac
    下载 Docker Desktop,安装并启动。

验证安装:

docker --version

2. 准备 Vue 项目
  • 确保 Vue 项目已经构建完成(生成静态文件)。
npm run build
  • 构建后会生成一个 dist 目录,里面是要部署的静态文件。

3. 创建 Dockerfile

在项目根目录创建一个名为 Dockerfile 的文件,内容如下:

# 使用官方 Nginx 镜像作为基础镜像
FROM nginx:stable-alpine# 把本地的 dist 文件夹复制到 Nginx 的静态文件目录
COPY dist/ /usr/share/nginx/html# 暴露端口号 80
EXPOSE 80# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]

4. 构建 Docker 镜像

在项目根目录运行以下命令:

docker build -t vue-app .

说明:

  • -t vue-app 是给镜像取名字。
  • . 表示当前目录。

5. 启动容器

使用刚创建的镜像运行容器:

docker run -d -p 8080:80 --name vue-container vue-app

说明:

  • -d:后台运行。
  • -p 8080:80:将本地 8080 端口映射到容器的 80 端口。
  • --name vue-container:给容器取名。

打开浏览器访问 http://localhost:8080,你应该能看到 Vue 应用。


6. 停止和删除容器

停止运行的容器:

docker stop vue-container

删除容器:

docker rm vue-container

Docker 使用的完整流程总结

  1. 安装 Docker
  2. 准备应用程序代码(比如构建 Vue 项目)。
  3. 创建 Dockerfile(定义如何构建容器镜像)。
  4. 构建镜像(把应用打包成 Docker 镜像)。
  5. 运行容器(启动应用)。
  6. 管理容器(停止、删除、更新)。

通过 Docker 部署 Vue 项目,你可以快速实现“打包一次,到处运行”的目标,大大简化了部署流程,并提升了开发效率。

http://www.lryc.cn/news/509603.html

相关文章:

  • 【C语言程序设计——选择结构程序设计】预测你的身高(头歌实践教学平台习题)【合集】
  • 简单两步使用ssh配置内网穿透
  • M系列芯片切换镜像源并安装 openJDK17
  • 图像处理-Ch6-彩色图像处理
  • Redis可视化工具 RDM mac安装使用
  • 单元测试/系统测试/集成测试知识总结
  • 多目标应用(一):多目标麋鹿优化算法(MOEHO)求解10个工程应用,提供完整MATLAB代码
  • 机器学习和深度学习中的种子设置
  • [手机Linux] 七,NextCloud优化设置
  • Ruby+Selenium教程
  • 【论文阅读笔记】Learning to sample
  • 边缘计算收益稳定
  • 域名和服务器是什么?域名和服务器是什么关系?
  • IBatis和MyBatis在细节上的不同有哪些
  • 使用Python获取PDF文本和图片的精确位置
  • 【AI日记】24.12.25 kaggle 比赛 2-13
  • 【网络安全】用 Frida 修改软件为你所用
  • 《信管通低代码信息管理系统开发平台》Windows环境安装说明
  • 使用强化学习与遗传算法优化3D低空物流路径_版本2
  • 【MinIO系列】MinIO Client (mc) 完全指南
  • 【微信小程序】2|轮播图 | 我的咖啡店-综合实训
  • React与Vue的区别(相同点和不同点)
  • Python语言的文件操作
  • 前端Pako.js 压缩解压库 与 Java 的 zlib 压缩与解压 的互通实现
  • unity 打包出来的所有执行文件内容打包成一个exe程序
  • 华为管理变革之道:组织文化与活力
  • 仿闲鱼的二手交易小程序软件开发闲置物品回收平台系统源码
  • PostgreSQL CRUD 操作指南
  • 4X4规模S盒分量布尔函数计算工具(附各大常见分组加密算法S盒查找表和其对应分量布尔函数截图)
  • 模拟——郑益慧_笔记1_绪论