容器化平台Docker初识

news2024/12/26 17:19:14

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.coloradmin.cn/o/2265937.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS下,离线安装vscode的步骤;

前置条件: 1.CentOS7; 步骤: 1.下载vscode指定版本,例如; 例如 code-1.83.1-1696982959.el7.x86_64.rpm 2.使用下面命令: sudo rpm -ivh code-1.83.1-1696982959.el7.x86_64.rpm 其他: 卸载vscode的命…

【CSS in Depth 2 精译_087】14.4:CSS 中的浮动特效以及在文字环绕中的应用 + 14.5:本章小结

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第四部分 视觉增强技术 ✔️【第 14 章 蒙版、形状与剪切】 ✔️ 14.1 滤镜 14.1.1 滤镜的类型14.1.2 背景滤镜 14.2 蒙版 14.2.1 带渐变效果的蒙版特效14.2.2 基于亮度来定义蒙版14.2.3 其他蒙版属…

2025考研加油!Jing也加油哦!

一恍惚,离自己考研初试过去都两年了!研究生生活也过去一大半!借此机会也总结一下研究生这一段生活——研究生生活(上) About I 昨天实验室聚餐,作为老生欢迎新生,啊啊啊,真的没想到…

Flink调优----资源配置调优与状态及Checkpoint调优

目录 第 1 章 资源配置调优 1.1 内存设置 1.1.1 TaskManager 内存模型 1、内存模型详解 2、案例分析 1.1.2 生产资源配置示例 1.2 合理利用 cpu 资源 1.2.1 使用 DefaultResourceCalculator 策略 1.2.2 使用 DominantResourceCalculator 策略 1.2.3 使用 DominantRes…

9. zynq应用开发--makefile编译

3. 使用SDK工具 如果只做 Linux 应用开发,只需要一个 sdk.sh 文件即可,可以脱离 Petalinux 和 Vitis,也可以编译其三方的应用,可以说一劳永逸。 配置根文件系统 petalinux-config -c rootfs 编译SDK petalinux-build --sdk Linu…

【ORB-SLAM3:相机针孔模型和相机K8模型】

在ORB-SLAM3中,相机的建模是 SLAM 系统的核心之一,因为它直接影响到如何处理和利用图像数据进行定位和地图构建。ORB-SLAM3 支持不同的相机模型,其中包括针孔模型和鱼眼模型(K8 模型)。下面分别介绍这两种模型。 相机…

element-plus在Vue3中开发相关知识

报错&#xff1a;error.mjs:20 ElementPlusError: [ElForm] model is required for resetFields to work. 原因&#xff1a;el-form使用v-model没有把内容绑定上&#xff0c;需要使用 :model 才可以校验 将&#xff1a; <el-form label-width"auto" class"…

HarmonyOS NEXT 实战之元服务:静态案例效果--- 日出日落

背景&#xff1a; 前几篇学习了元服务&#xff0c;后面几期就让我们开发简单的元服务吧&#xff0c;里面丰富的内容大家自己加&#xff0c;本期案例 仅供参考 先上本期效果图 &#xff0c;里面图片自行替换 效果图1完整代码案例如下&#xff1a; import { authentication } …

使用Vue的props进行组件传递校验时出现 Extraneous non-props attributes的解决方案

作者&#xff1a;CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境&#xff1a;WebStorm 目录 出现错误的情况 报错&#xff1a; 代码&#xff1a; 报错截图 原因分析 解决方案 方法一 方法二 出现错误的情况 以下是我遇到该错误时遇到的报错和代码&…

基础运维学习计划-base版

目录 需要学习的内容&#xff1f; liunx基础 sql/mysql基础 tcp/ip协议基础 http基础 dns基础 网络基础&#xff1a;交换&路由概念&原理 常见网络协议 月学习计划 12.26 日 &#xff08;bilibili自己找视频看看&#xff0c;资源很多&#xff09; 12.27日 1…

亚信安全与方天股份达成战略合作,双向奔赴助力数字化转型

近日&#xff0c;亚信安全科技股份有限公司&#xff08;以下简称“亚信安全”&#xff09;正式与青岛方天科技股份有限公司&#xff08;以下简称“方天股份”&#xff09;签订合作框架协议。双方强强携手&#xff0c;在网络安全运营平台共建、信息化项目安全支撑、政企市场拓展…

117.【C语言】数据结构之排序(选择排序)

目录 1.知识回顾 2.分析 设想的思路 代码 执行结果 ​编辑 错误排查和修复 详细分析出错点 执行结果 3.正确的思路 4.其他问题 1.知识回顾 参见42.5【C语言】选择排序代码 点我跳转 2.分析 知识回顾里所提到的文章的选择排序一次循环只比一个数字,和本文接下来要…

画展在线上通过虚拟展厅展览,如何实现?有何好处?

画展在线上通过虚拟展厅展览的实现方式及好处可以归纳如下&#xff1a; 一、实现方式 1、技术基础&#xff1a; 虚拟现实&#xff08;VR&#xff09;技术&#xff1a;利用VR技术&#xff0c;观众可以佩戴VR设备身临其境地参观展厅&#xff0c;与展品进行直观互动。 三维建模…

WordPress Tutor LMS插件 SQL注入漏洞复现(CVE-2024-10400)

0x01 产品简介 WordPress Tutor LMS插件是一款功能丰富且强大的学习管理系统(LMS)插件,它专为WordPress平台设计,旨在帮助用户轻松创建、管理和销售在线课程。功能强大且易于使用的学习管理系统插件。它提供了完整的在线课程市场解决方案,帮助用户轻松创建、管理和销售在…

Spring源码_05_IOC容器启动细节

前面几章&#xff0c;大致讲了Spring的IOC容器的大致过程和原理&#xff0c;以及重要的容器和beanFactory的继承关系&#xff0c;为后续这些细节挖掘提供一点理解基础。掌握总体脉络是必要的&#xff0c;接下来的每一章都是从总体脉络中&#xff0c; 去研究之前没看的一些重要…

主流AI视频生成工具|Sora零基础入门指南

Sora是什么&#xff1f; Sora 是 OpenAI 推出的新一代 AI 视频生成工具。它能让用户通过简单的文本描述或图片提示&#xff0c;快速生成高质量的视频内容。无论是广告短片、创意视频&#xff0c;还是实验性艺术作品&#xff0c;Sora 都能帮助创作者以极低的门槛实现自己的想法。…

VUE3+django接口自动化部署平台部署说明文档(使用说明,需要私信)

网址连接&#xff1a;http://118.25.110.213:5200/#/login 账号/密码&#xff1a;renxiaoyong 1、VUE3部署本地。 1.1本地安装部署node.js 1.2安装vue脚手架 npm install -g vue/cli # 或者 yarn global add vue/cli1.3创建本地项目 vue create my-vue-project1.4安装依赖和插…

“乡村探索者”:村旅游网站的移动应用开发

3.1 可行性分析 从三个不同的角度来分析&#xff0c;确保开发成功的前提是有可行性分析&#xff0c;只有进行提前分析&#xff0c;符合程序开发流程才不至于开发过程的中断。 3.1.1 技术可行性 在技术实现层次&#xff0c;分析了好几种技术实现方法&#xff0c;并且都有对应的成…

Docker完整技术汇总

Docker 背景引入 在实际开发过程中有三个环境&#xff0c;分别是&#xff1a;开发环境、测试环境以及生产环境&#xff0c;假设开发环境中开发人员用的是jdk8&#xff0c;而在测试环境中测试人员用的时jdk7&#xff0c;这就导致程序员开发完系统后将其打成jar包发给测试人员后…

天特量子生物肿瘤电场仪

在医疗科技飞速发展的今天&#xff0c;一种名为“天特量子肿瘤电场治疗仪”的创新设备正逐步成为肿瘤治疗领域的一颗璀璨新星。这款由河南省天特量子医疗科技有限公司&#xff08;以下简称“天特量子”&#xff09;倾力打造的治疗仪&#xff0c;以其独特的无创治疗、精准定位、…