首页 > 其他分享 >docker部署项目

docker部署项目

时间:2023-03-06 15:35:57浏览次数:64  
标签:容器 映射 项目 部署 宿主机 nginx home docker

1.简介

本文主要介绍如何使用docker安装nginx,以及如何将前端打包好的vue项目部署到nginx上。

2.安装docker

Docker官方和国内daocloud都提供了一键安装的脚本,使得Docker的安装更加便捷。

2.1官方的一键安装方式:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

2.2国内 daocloud一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

3.前端

(1)拉取nginx镜像:

docker pull nginx
(2)咱们先把docker镜像运行起来:

docker run --name myNginx -p 80:80 -v /home/nginx/dist:/usr/share/nginx/html -d nginx

--name:容器名字
-d: 要启动的镜像的名字
-v: /home/nginx/dist 这是宿主机(服务器)中的目录映射到nignx容器中的/usr/share/nginx/html中;

其实最让人费解的就是-v这个东西,其实就是docker的文件映射。我自己的理解就是将宿主机与nginx镜像中的目录映射关联起来,这样的效果就是nginx镜像中的目录下的文件发生了什么变化,与之映射的宿主机的目录也会随之变化,同理,当宿主机中的映射目录下的文件发生变化,与之对应的nginx镜像中的映射目录也会有同样的变化,二者的内容是保持一样了,这样的好处就是我们以后想改某个容器的配置文件的时候,不用再进入到容器内部去改了,在宿主机上改即可。

(3)让宿主机和容器内文件保持一致:

上一步启动容器的目的是想把容器中的一些目录先拷贝到宿主中,上一个启动命令并不是终极版的启动命令,咱们还需要把nginx容器中的配置文件所在的目录下的文件内容拷贝到宿主机中,让这两个目录的原始内容先保持一致,请看命令:

docker cp 容器id:/etc/nginx /home/etc

把nginx容器中的/etc/nginx下的内容拷贝到宿主机的/home/etc文件中,如果你的/home里面没有etc这个文件夹,可以提前建一个再来拷贝。

(4)这个nginx容器我已经利用完了,现在是时候抛弃它了,因为咱们的终极版nginx容器是不需要它了,运行下面的命令来把这个nginx容器删除掉:

docker rm 容器id
(5)做完上面的无情第四步之后,接下来是最重要的一步,我们要启动nginx镜像。
docker run --name myNginx -p 80:80 -v /home/nginx/dist:/usr/share/nginx/html -v /home/etc/nginx:/etc/nginx -d 镜像的id或者名字
解释:启动镜像的时候,最重要的就是做好文件映射,这里有两个地方我们需要映射的,一个是nginx镜像中的:/usr/share/nginx/html,这个目录是用于放具体的vue前端项目的嘛,我们就用将它映射到宿主机(你的服务器)中的这个目录: /home/nginx/dist;还有一个是nginx镜像中的:/etc/nginx,这个目录里面有nginx的配置文件,咱们映射到宿主机:/home/etc/nginx里面。映射了这个目录以后,修改nginx的配置文件就可以不用再到容器里面了,可以直接到宿主机的/home/etc/nginx里面去修改nginx的配置文件。

(6)咱们继续看看怎么到宿主机上修改nginx的配置文件:

cd /home/etc/nginx/conf.d
到这个目录下,我们可以看到一个: default.conf,这个文件就是配置nginx的关键文件。
图片
然后就是咱们build的前端项目只要上传到宿主机中的: /home/nginx/dist里面即可,就像下面这样。

image

最后咱们可以重启一下nginx容器,看看有没有生效。访问地址是:你的服务器ip地址:80

image

总结

1.要注意docker的文件映射的哪一部分。

2.通过映射把前端包dist,放到主机上,

有好处:迭代dist前端包时,只需要去/home/nginx/路径下,把dist文件夹替换掉,重启nginx容器即可;

有坏处:nginx容器打包成镜像时,/home/nginx路径下的dist文件夹,打不到镜像中。这样还原镜像时,也需要再进行文件映射那一步

标签:容器,映射,项目,部署,宿主机,nginx,home,docker
From: https://www.cnblogs.com/guozhiqiang/p/17183920.html

相关文章

  • 详解Docker容器运行GUI程序的方法
    摘要:本文为大家详解如何直接进入Docker容器运行或通过SSH连接Docker容器运行GUI程序的方法。本文分享自华为云社区《Docker容器运行GUI程序的方法(直接进入Docker容器运行......
  • 详解Docker容器运行GUI程序的方法
    摘要:本文为大家详解如何直接进入Docker容器运行或通过SSH连接Docker容器运行GUI程序的方法。本文分享自华为云社区《​​Docker容器运行GUI程序的方法(直接进入Docker容器运......
  • LightDB数据库分布式部署实践
    当今做大型数据库应用的时候,随着业务越做越大,数据量也会越来越大,计算也会越来越复杂。对性能,可靠性,可扩展性的需求越来越强烈,集中式数据库显然已经满足不了需求。......
  • exchange2016服务器的DAG的部署
    现在大家都开始用exchange2016的邮件系统了。原先的的exchange2010也需要升级了。要么升级,要exchange2010和exchange2016共存。我是在把原来虚拟机的环境卸载后重新安装的......
  • Spring Boot&Vue3 前后端分离 实战 wiki 知识库系统<一>--Vue CLI 项目搭建目搭建
    接着上一次​​SpringBoot&Vue3前后端分离实战wiki知识库系统<二>---后端架构完善与接口开发​​的继续往下,这次则开始涉及到前端Vue框架的学习了,为之后的后台界面搭建......
  • Spring Boot + Vue3 前后端分离 实战 wiki 知识库系统<一>--Vue3 + Vue CLI 项Vue3 +
    接着上一次https://www.cnblogs.com/webor2006/p/17139526.html的继续往下,这次则开始涉及到前端Vue框架的学习了,为之后的后台界面搭建打好地基。了解Vue和VueCLI及其关系......
  • 简单的Mac版Docker封装
    之前没有封装过docker文件,所以这个是一个尝试的记录。我的目录文件如下:  这里面的这个 requirements.txt是自动生成的。生成方法如下:安装pipreqs:pipinstallp......
  • vue2项目增加eslint配置代码规范示例
    eslint用于代码检查,prettier用于代码格式化,具体操作如下1.安装以下eslint插件安装以下eslint插件,并增加.eslintrc.js配置文件,.eslintignore配置忽略检查的文件(1)eslint......
  • Slava项目(1):实现近似LRU/LFU内存淘汰策略
    slava是作者参与的一个github开源项目,该项目的目标是用Go语言构建一个高性能K-V云数据库。在本文中,作者将介绍Slava中内存淘汰策略的实现。Slava中目前实现了四种内存淘汰......
  • centos7离线部署ansible并通过ansible批量修改用户密码
    centos7离线部署ansible并通过ansible批量修改用户密码找台可以联网的机器下载好程序包,上传到对应主机mkdir/app/ansible-p#下载bzip2yuminstall-ybzip2--downlo......