每个人的前半生,都在不停地做加法。可到了后半生,我们就要学会不断地做减法。

目录

前置工作

1、需要准备的东西

2、连接云服务器

安装Docker环境

1、安装Docker的依赖库。

2、添加Docker CE的软件源信息。

3、安装Docker CE。

4、启动Docker服务。

准备Dockerfile并部署项目(构建新的业务镜像)

1、准备nginx.conf.template、Dockerfile、dist(前端项目build后的包)

2、部署项目

知识点(需要的可查阅)

容器命令(需要时可查)

结束语


前置工作

1、需要准备的东西

一台Centos服务器并连接

我这是演示用的垃圾云,建议大家上阿里云、腾讯云等。

2、连接云服务器

连接服务器看文章: https://blog.csdn.net/qq_32442973/article/details/119840447


安装Docker环境

Docker有两个分支版本:Docker CEDocker EE,即社区版和企业版。本教程基于CentOS 7安装Docker CE。

1、安装Docker的依赖库。

yum install -y yum-utils device-mapper-persistent-data lvm2

2、添加Docker CE的软件源信息。

docker官方源:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

或者使用国内阿里云源(安装太慢/无法安装可以考虑用这个):

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 出现以下内容则代表设置源成功:

3、安装Docker CE。

可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

下面是安装方式

sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版 3:20.10.8-3.el7
sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce

我用第一种安装方式。

4、启动Docker服务。

sudo systemctl start docker #  启动docker
sudo systemctl enable docker # 设置开机自启

若不设置开机自启,那么一但服务器宕机或者重启,就得手动输命令重新启动,很麻烦。


准备Dockerfile并部署项目(构建新的业务镜像)

1、准备nginx.conf.template、Dockerfile、dist(前端项目build后的包)

为了方便管理我们统一放在目录frontend-docker下,以下代码段为步骤:

# 第一步
cd /# 第二步 创建文件夹
mkdir frontend-docker# 第三步
cd frontend-docker# 第四步 创建nginx.conf.template并编辑好保存
vi nginx.conf.template #打开编辑贴上下面的文件内容再按 esc 然后 : wq保存# 第五步 创建Dockerfile文件并编辑好保存
vi Dockerfile #打开编辑贴上下面的文件内容再按 esc 然后 : wq保存# 第五步 上传vue项目build后的dist文件夹

nginx.conf.template 文件内容

user nginx;#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   /dist;#try_files $uri /index.html; #解决路由重定向跳转 404 页面配置index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

Dockerfile文件内容 (业务镜像构建流程

FROM nginx:latestRUN mkdir /dist
COPY ./dist /dist
COPY ./nginx.conf.template /CMD envsubst < /nginx.conf.template > /etc/nginx/nginx.conf \&& cat /etc/nginx/nginx.conf \&& nginx -g 'daemon off;'

该文件里主要是安装了nginx,复制dist、nginx.conf.template、启动nginx的步骤。

注意:你复制粘贴时可能会无意丢掉头部几个单词,注意检查文件内容是否一致。

2、部署项目

上面的东西准备好后我们进入上面保存那三个文件的目录frontend-docker,已经在该目录的请忽略。

cd /
cd frontend-docker
#已经在frontend-docker目录就不用执行这两条命令

构建镜像 

docker build -f Dockerfile -t my-frontend:v1.0 .
#注意最后那个点是必须的,代表当前目录

成功如下:

设置容器运行镜像

docker run -d --name nginx01 -p 3000:80 --restart=always my-frontend:v1.0
# -后台运行
# --name nginx01  设置容器名字叫nginx01
# -p 3000:80 公网ip的3000端口对应该容器的80端口
# --restart=always设置了开机自启
# my-frontend:v1.0 构建的镜像的名字

最后浏览器公网ip:3000就可以打开了,若打开提示无法访问此网站请输入:

docker logs nginx01
#有报错信息的根据提示修改即可,一般多为前面my-frontend文件夹下的文件内容粘贴少了打头的几个字母

最后,上面的表示该vue项目已经成功部署! 经过验证重启服务器后仍旧可以正常打开!

这里有一点提个醒,部分浏览器会禁用一些端口,例如谷歌禁用6666,如果出现下文的情况,请docker run的时候更换端口 !

无法访问此网站

网址为 http://106.126.3.4:6666/ 的网页可能暂时无法连接,或者它已永久性地移动到了新网址。


知识点(需要的可查阅)

容器命令(需要时可查)

常规命令

docker pull **** #下载最新的****
//新建容器运行
docker run [可选参数] imageid#参数说明
-d                # 后台方式运行
--name            # 容器名称 用来区分容器,例如nginx01
--restart=always  #开机自启#下方为端口组合
-p                # 随机指定端口-p 主机端口:容器端口(常用)-p ip:主机端口容器端口-p 容器端口        容器的端口
-P
#详见菜鸟教程 or w3c

容器退出删除命令

exit #容器退出
Ctrl+P+Q #不停止推出docker rm 容器id                  # 删除指定的容器 不能删除正在运行的
docker rm -f $(docker ps -aq)     # 删除所有容器
docker ps -a -q | xargs docker rm # 删除所有容器

启动、停止容器命令

docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id

更多详细的命令还请大家查阅相关资料,这里不再一一列举。


结束语

以上关于docker前端部署的实战就差不多到此了,后续会推出前端自动化部署的方案,如果小伙伴们觉得满意,还请点个关注、收藏、或者赞赞支持一下

使用Docker部署前端项目实战教程,该踩的坑我都帮你踩了!相关推荐

  1. 史上最全阿里云服务器上Docker部署Springboot项目 实战 每一步都带详细图解!!!

    在学习编程的时候,我们都会想,该怎么把自己写出来的项目和创意分享给大家勒.直接给代码吗?平常人看不懂,环境还需要一大堆. 那么部署到服务器上,让人能够直接访问,我想这应该是最棒的方式了吧. 使用Doc ...

  2. 史上最详细阿里云服务器上Docker部署vue项目 实战 每一步都带详细图解!!!

    找了很多博客,最后才成功,

  3. Gitlab CI/CD教程以及实战docker自动部署前端项目(全)

    目录 前言 1. 技术知识 1.1 docker安装gitlab 1.2 docker安装gitlab-runner 1.3 .gitlab-ci.yml编写 1.4 使用docker部署前端项目 1 ...

  4. Spring Boot + vue-element 开发个人博客项目实战教程(二十五、项目完善及扩展(前端部分))

    ⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot + vue-element 开发个人博客项目实战教程 ⭐专栏内容:零基础学Java.个人博客系统 ⭐我的文档网站:http://xyhwh- ...

  5. 【云原生之Docker实战】使用docker部署mkdocs项目文档工具

    [云原生之Docker实战]使用docker部署mkdocs项目文档工具 一.mkdocs介绍 1.mkdocs简介 2.mkdocs特点 二.检查本地环境 1.检查docker版本 2.检查dock ...

  6. Docker 部署SpringBoot项目不香吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...

  7. Spring Boot + vue-element 开发个人博客项目实战教程(十三、文章标签功能实现)

    ⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot + vue-element 开发个人博客项目实战教程 ⭐专栏内容:零基础学Java.个人博客系统 项目部署视频 https://www.bi ...

  8. Spring Boot + vue-element 开发个人博客项目实战教程(一、项目介绍和规划)

    ⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot + vue-element 开发个人博客项目实战教程 ⭐专栏内容:零基础学Java.个人博客系统 ⭐我的文档网站:http://xyhwh- ...

  9. Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo

    Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...

  10. nginx怎么部署php项目,nginx怎么正确部署前端项目

    目的: nginx部署打包成为dist的前端项目 (学习视频分享:php视频教程) 相关知识:docker 安装与使用 docker pull nginx docker run --restart=o ...

最新文章

  1. linux中使用u盘和光驱的命令_Linux操作系统下挂载硬盘光驱和U盘的方法
  2. uwsgi 参数解释
  3. DLL动态链接库的工作原理
  4. 微信分享无响应的解决
  5. 仿苹果涂鸦软件_这些iPhone自带软件,学会一个少装十几个APP,16G手机也够用
  6. K8S精华问答 | 如何监控部署在Docker容器上的应用程序?
  7. ubuntu 禁用透明大页_MySQL InnoDB 透明页压缩(Page Compression)
  8. 2019新的启程新的规划
  9. CentOS(RedHat)命令行永久修改IP地址、网关、DNS
  10. 日期对象Date的计算
  11. linux内核之字符设备驱动图解
  12. 数据字典中的数据类型与ABAP中的中数据类型对应关系
  13. java.this的作用包括,智慧职教: 以下不是Java中this关键字的作用的是()。
  14. 数据库文档生成工具-markdown格式
  15. 云解析 dns 服务器,你知道为什么云解析DNS又快又安全吗?
  16. CentOS 7 Docker安装GVM-11
  17. cytoscape.js初级篇
  18. 黑鲨一代启动Android密码,黑鲨一代(BlackShark) 刷入TWRP 获取完美ROOT权限 刷机教程...
  19. 【ABAP】SE38的一些使用技巧
  20. Vue中css自定义实现div层,并在右上角有个叉叉,模仿dialog

热门文章

  1. 王道 计算机网络试题讲解_王道考研系列--计算机网络
  2. 洛谷oj---P1030 求先序排列
  3. 大数据笔试面试题(转载)
  4. 高等代数第3版下 [丘维声 著] 2015年版_2020年成人高考 专升本 高等数学复习攻略...
  5. Java 加密、解密PDF文档
  6. DarkAngels勒索病毒分析
  7. java基础知识精讲视频教程百度云盘分享!
  8. ArcView GIS 应用与开发技术(13)-定制ArcView
  9. 《推荐系统实践》算法纯享(附代码链接)(三)—— 冷启动篇
  10. JavaScript——事件,DOM,Browser Object Model 浏览器对象模型,电灯开关,HTML DOM,表单动态添加