Docker(二)Docker+ server部署极简前端页面

news2024/9/29 19:18:09

本篇文章介绍如何使用 Docker+server 将一个极简前端页面进行部署

1.本地运行一个简单的前端页面,再把它部署到服务器上

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <h1> hellow docker!</h1>
</body>
</html>

package.json

{
  "name": "nginxdocker",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "serve . -p 3030",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "serve": "^14.2.1"
  }
}

执行 npm i ,安装node_modules,npm run start 就行在本地运行起来了
下一步就是在服务器部署这个页面

2.Dockerfile 构建基础镜像

服务器系统:centos 7
docker:26.0.1
将刚才的index.html,package.json放在服务器新建的目录下(以下执行的命令都在次目录下执行),再创建文件Dockerfile

# 选择一个体积小的镜像 (~5MB)
FROM node:14-alpine
 
# 设置为工作目录,以下 RUN/CMD 命令都是在工作目录中进行执行
WORKDIR /code
 
# 把宿主机的代码添加到镜像中
ADD . /code
 
# 安装依赖
RUN yarn
 
EXPOSE 3000
 
# 启动 Node Server
CMD npm start

构建镜像: docker build -t simple-app .

# 构建一个名为 simple-app 的镜像
# -t: "name:tag" 构建镜像名称
$ docker build -t simple-app .

查看镜像: docker images

$ docker images
REPOSITORY           TAG         IMAGE ID       CREATED          SIZE
simple-app           latest      c1571917d2c2   17 seconds ago   133MB

在这里插入图片描述

3.运行容器

我们可以基于一个镜像运行 N 个容器,而本次启动的容器也是我们最终所要提供的静态服务

# 根据该镜像运行容器
# 如果需要在后台运行则添加 -d 选项
# --rm: 当容器停止运行时,自动删除容器
# -p: 3000:3000,将容器中的 3000 端口映射到宿主机的 3000 端口,左侧端口为宿主机端口,右侧为容器端口
$ docker run --rm -p 3030:3030 simple-app
 
# 运行成功后可在另一个窗口查看所有容器
$ docker ps
CONTAINER ID   IMAGE        COMMAND                  CREATED          STATUS          PORTS                                       NAMES
50784910f758   simple-app   "docker-entrypoint.s…"   20 seconds ago   Up 20 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   wizardly_solomon

此时我们就行通过ip:3030 看到我们部署的页面

4.注意:此时我们修改index.html,再重新启动镜像是无效的

因为我们是基于当时的文件创建的镜像,要想修改成功,我们需要重新再次构建新的镜像,通过新的镜像再次运行容器。
如果我们想要更改代码页面即时更改,我们需要用到挂载目录

docker run --rm -p 3030:3030 -v /root/docker/dockerFile2:/code simple-app
5.目录挂载

我们将容器运行起来之后,再更改代码是不会立刻生效的,需要重新构建镜像、运行容器的,很麻烦。我们可以通过目录挂载的方法解决这个问题,我们把宿主机的目录映射到容器内的目录内,一个宿主机的目录可映射多个容器。这种方法也可以用来部署本地的开发环境

# 如果需要在后台运行则添加 -d 选项
#-p 端口映射,宿主机端口:容器内端口 
# --name 命名容器名字
# -v 宿主机目录:容器内目录(也就是dockerfile中WORKDIR的文件夹)
# 最后一个 simple-app 就是镜像名字
docker run -it -d --name test  -p 3031:3030 -v /root/docker/dockerFile2:/code simple-app

注意事项
宿主机也要npm i 一下,保持和镜像内的文件一致,不然会出现即时容器构建成功了,也不能运行。
如果容器构建成功但是不能运行,利用docker ps -a 查看容器的状态,如果一直是exited的状态,
我们可以通过 docker logs 容器ID // 查看容器日志 来查看报错。
常用的几个docker命令

docker images //查看镜像列表
docker rmi -f 镜像名/镜像ID  //删除镜像

sudo docker ps //查看正在运行容器
sudo docker ps -a // 查看所有容器 -----包含正在运行 和已停止的
docker rm -f 容器名/容器ID //删除一个容器
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID  //删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f $(docker ps -aq)  //删除全部容器
docker stop 容器名/容器ID // 停止容器
docker start 容器名/容器ID // 开始容器
docker restart 容器名/容器ID // 重启容器
docker attach 容器ID/容器名 // 进入正在运行中的容器
docker logs 容器ID // 查看容器日志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1614557.html

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

相关文章

算法思想总结:栈

一、栈的经典应用&#xff1a;波兰表达式与逆波兰表达式 我们平时看到的 12*&#xff08;3-4*5&#xff09;6/7 叫做中缀表达式&#xff0c;平时我们习惯用这个计算的原因是我们可以整体地去看到这个表达式并且清楚地知道各个运算符的优先级&#xff0c;但是计算机并不一定知道…

JavaScript之模块化规范详解

文章的更新路线&#xff1a;JavaScript基础知识-Vue2基础知识-Vue3基础知识-TypeScript基础知识-网络基础知识-浏览器基础知识-项目优化知识-项目实战经验-前端温习题&#xff08;HTML基础知识和CSS基础知识已经更新完毕&#xff09; 正文 CommonJS、UMD、CMD和ES6是不同的模块…

详解爬虫基本知识及入门案列(爬取豆瓣电影《热辣滚烫》的短评 详细讲解代码实现)

目录 前言什么是爬虫&#xff1f; 爬虫与反爬虫基础知识 一、网页基础知识 二、网络传输协议 HTTP&#xff08;HyperText Transfer Protocol&#xff09;和HTTPS&#xff08;HTTP Secure&#xff09;请求过程的原理&#xff1f; 三、Session和Cookies Session Cookies Session与…

核桃派全志H616实现VNC远程桌面教程

VNC远程桌面 核桃派预装了VNC服务器&#xff0c;VNC适应于局域网&#xff08;通常指同一个路由器网络下&#xff09;桌面登录。使用该服务前先确保核桃派已经通过以太网或无线WiFi连接到路由器。 使用核桃派桌面系统的时候由于要配置各类信息和联网&#xff0c;可以使用HDMI显…

【C语言】每日一题,快速提升(5)!

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 目录 1. strlen函数 2. strcpy函数 3. strcat函数 题目&#xff1a;模拟实现 strlen--strcpy--strcat--三个函数 1. strlen函数 字符串计算 #include <stdio.h…

硕士博士学位论文格式检查规范

包含标题、摘要、英文缩写、关键词、公式、表格、图片、参考文献&#xff0c;只能说太强了 学位论文检查三十六策点击蓝字 关注我们 写在前面 同学们撰写学位论文时&#xff0c;常常犯一些错误&#xff0c;既有格式错误&#xff0c;也有内容错误。本文列举36https://mp.weixin.…

【python】如何通过python来发送短信

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

SFP、SFP+、SFP28 与 QSFP28 收发器之间的差异:兼容性和性能

近年来&#xff0c;网络技术发展迅速&#xff0c;因此&#xff0c;计算专业人员面临着越来越令人困惑的术语和缩写词。 管理数据中心时必须了解的一个关键领域是收发器&#xff0c;特别是 SFP (1550nm/1310nm)、SFP (850nm) 和 QSFP28 (4x25G) 之间的差异。 这些型号在兼容性方…

【热门话题】常用经典目标检测算法概述

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 常用经典目标检测算法概述1. 滑动窗口与特征提取2. Region-based方法R-CNN系列M…

【日志】CSDN-AI助手升级日志

CSDN-AI助手升级日志 2023/04/05上线 支持点赞、收藏回访 关注回访&#xff08;对方至少有一条博客的记录&#xff09; 评论回访 私信检测到群发消息自动三连 OR 通过私信指令三连触发 bug优化 优化检测模式&#xff0c;防止出现多触发情况 为了防止操作额度不够&#xff0c…

Java面试八股之简述Servlet体系结构

简述Servlet体系结构 Servlet是Java Web开发中的核心组件&#xff0c;用于接收和响应HTTP请求&#xff0c;生成动态内容。它具有平台无关性、协议无关性和动态内容生成能力&#xff0c;遵循明确的生命周期。尽管现代Web开发中更多使用高级框架&#xff0c;但Servlet作为基础&a…

[笔试训练](二)

004 牛牛的快递_牛客题霸_牛客网 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 使用向上取整函数ceil()&#xff0c;&#xff08;记得添加头文件#include<cmath>&#xff09; #include <iostream> #include <cmath> using namespace std;int main(…

基于SpringBoot+Vue的企业资产管理系统设计与实现

1、系统演示视频&#xff08;演示视频&#xff09; 2、需要请联系

Ceph 分布式文件系统 搭建及使用

一、Ceph 介绍 在当今数据爆炸式增长的时代&#xff0c;企业对于可靠、可扩展的存储解决方案的需求日益迫切。Ceph 作为一种开源的、可伸缩的分布式存储解决方案&#xff0c;正逐渐成为企业级存储领域的热门选择。Ceph是一种由Radicalbit公司开发的开源分布式存储系统&#xf…

Visual Studio 2022 Professional、Enterprise安装教程

Visual Studio 2022 Professional、Enterprise安装教程 下载安装包安装 我是电脑已经有VS2019&#xff0c;现在加装一个VS2022。 下载安装包 首先下载安装包&#xff0c;进入官网进行下载&#xff0c;VS官网下载地址。 进入之后&#xff0c;会显示如下界面&#xff0c;选择Pro…

chrome插件 脚本 使用和推荐

chrome插件使用 在极简插件中可以进行下载并进行安装, 内部有安装教程在极简插件中搜索"油猴",下载一个油猴插件,并安装,可以用于下载很多的用户脚本用户脚本下载地址Greasy Fork,里面有很多实用的用户脚本供下载,并在油猴中进行管理 推荐的插件 Tampermonkey 篡改…

Linux进阶篇:centos7搭建jdk环境

Linux服务搭建篇&#xff1a;centos7搭建jdk环境 本文主要介绍的是如何是Linux环境下安装JDK的&#xff0c;关于jdk的概念就不做赘述了&#xff0c;相信大家都有所耳闻了&#xff0c;Linux环境下&#xff0c;很多时候也离不开Java的&#xff0c;下面笔者就和大家一起分享如何jd…

都2024年了,你还不知道git worktree么?

三年前 python 大佬吉多范罗苏姆(为 Python 程序设计语言的最初设计者及主要架构师)才知道 git worktree &#xff0c;我现在才知道&#xff0c;我觉得没啥丢人的。 应用场景 如果你正在 feature 的分支中开发新功能&#xff0c;线上版本紧急错误又需要你基于 master 做修复。…

DFS和回溯专题:组合总和

DFS和回溯专题&#xff1a;组合总和 题目链接: 39.组合总和 参考题解&#xff1a;代码随想录 题目描述 代码纯享版 class Solution {public List<List<Integer>> list_all new ArrayList();public List<Integer> list new ArrayList();public List<…

linux服务器和RAID磁盘阵列

1、服务器 &#xff08;1&#xff09;服务器分类 机架式居多 塔式 刀片式 机柜式 机架式 机架式服务器是一种服务器的机箱形式&#xff0c;它被设计为在服务器机架或机柜中安装。机架式服务器通常具有标准的19英寸宽度&#xff0c;并且可以根据服务器的高度进行划分&#xff0…