ubuntu+Docker部署Django+Vue项目(1-Vue)

news2024/11/24 20:09:51

文章目录

    • ubuntu安装下载Docker
        • 1.卸载(清除旧版本。没下载过也可以执行下试试)
        • 2.更新apt包索引并安装包,以允许apt通过HTTPS使用存储库
        • 3.添加Docker的官方GPG密钥
        • 4.使用以下命令设置存储库
        • 5.更新apt包索引
        • 6.安装最新版本的Docker Engine、containerd和Docker Compose。
        • 7.通过运行hello world映像验证Docker Engine安装是否成功
    • ubuntu安装下载Nginx
        • default.conf内容
        • Dockerfile内容
        • 启动容器:
        • 访问成功:
    • 部署过程中的一些Docker命令

之前直接在ubuntu上部署过这个项目,但是因为Docker部署的一些好处: 持续集成、版本控制、可移植性、隔离性和安全性
我这主要是为了在docker容器中部署之后,打包容器,拖到云端直接运行(可移植性)。又要在Docker上部署一遍了。在这个部署过程中给出一些用到的docker命令(感觉有点像linux命令)

ubuntu安装下载Docker

官网安装链接
搜过一些复杂详细的教程,但是没有安装过Docker,直接按照官网很快顺利的安装完成了。
以下按照官网的步骤解释一下

1.卸载(清除旧版本。没下载过也可以执行下试试)

sudo apt-get remove docker docker-engine docker.io containerd runc

卸载docker时,存储在/var/lib/docker/中的图像、容器、卷和网络不会自动删除

2.更新apt包索引并安装包,以允许apt通过HTTPS使用存储库

sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

3.添加Docker的官方GPG密钥

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

4.使用以下命令设置存储库

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5.更新apt包索引

sudo apt-get update

6.安装最新版本的Docker Engine、containerd和Docker Compose。

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

7.通过运行hello world映像验证Docker Engine安装是否成功

sudo docker run hello-world

ubuntu安装下载Nginx

  1. 默认拉取最近的nginx镜像
docker pull nginx
  1. 查看已安装镜像镜像
docker images
  1. 新建一个项目文件夹放Web项目。在/home/andy/新建Web目录(放多个Web项目),再新建nginx目录,其中distvue-cli编译项目生成的文件夹直接拖入的。
    在这里插入图片描述
  2. 以下给出另外两个文件nginx 和docker的配置

default.conf内容

其实就是之前没用Docker部署的nginx中nginx.conf中的内容(根据自己的文件修改)

//简化版
	server {
	listen   8080;     #配置访问时的端口号
	server_name  192.168.80.129;	#修改为docker服务宿主机的ip
	charset     utf-8;
	client_max_body_size  75M;  #影响post文件的最大大小

	location / {          #配置uWSGI服务器
		root /usr/share/nginx/html;
		index index.html;
		add_header 'Access-Control-Allow-Origin' '*';
		}
	}

Dockerfile内容

FROM nginx
MAINTAINER andy  
RUN rm /etc/nginx/conf.d/default.conf
ADD default.conf /etc/nginx/conf.d/
COPY dist/ /usr/share/nginx/html/

自定义构建镜像的时候基于 Dockerfile 来构建。
FROM nginx 命令的意思该镜像是基于 nginx:latest镜像而构建的。
MAINTAINER andy镜像维护者姓名或邮箱地址。
RUN rm /etc/nginx/conf.d/default.conf 删除原来的nginx配置文件
ADD default.conf /etc/nginx/conf.d/ 将当前目录下的默认配置文件复制到原来目录下
COPY dist/ /usr/share/nginx/html/ 命令的意思是将项目根目录下dist文件夹下的所有文件复制到镜像中 /usr/share/nginx/html/ 目录下。

  1. 创建镜像(不要漏掉最后的一个点):
    进入nginx目录下执行命令:
    sudo是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具
sudo docker build -t pvcal .

执行成功

root@ubuntu:/home/andy/Web/nginx# sudo docker build -t pvcal .
Sending build context to Docker daemon  3.215MB
Step 1/5 : FROM nginx
 ---> 88736fe82739
Step 2/5 : MAINTAINER andy
 ---> Running in 97341a1ac29e
Removing intermediate container 97341a1ac29e
 ---> 0ccbdef5db5b
Step 3/5 : RUN rm /etc/nginx/conf.d/default.conf
 ---> Running in 5791b2eea9e3
Removing intermediate container 5791b2eea9e3
 ---> f550ba3ce560
Step 4/5 : ADD default.conf /etc/nginx/conf.d/
 ---> d161248c35d1
Step 5/5 : COPY dist/ /usr/share/nginx/html/
 ---> 6ba8ca4542fa
Successfully built 6ba8ca4542fa
Successfully tagged pvcal:latest

启动容器:

sudo docker run -d -p 【主机端口】:【容器端口】 --name 【容器名】【镜像名】

-p : 端口映射 格式为[主机端口:容器端口]
-d : 后台模式运行
-name : 给容器起一个名字

sudo docker run -d -p 8080:80 --name 6ba8ca4542fa pvcal

访问成功:

在这里插入图片描述

部署过程中的一些Docker命令

列出正在运行的容器

docker ps 

显示所有的容器,包括未运行的

docker ps -a

在这里插入图片描述
停止一个正在运行的容器:

docker stop 8959823ce1b7   //docker stop 容器ID或容器名

删除容器(配合停止容器删除)

docker rm 8959823ce1b7   

重启容器

docker restart 8959823ce1b7  //docker restart 容器ID或容器名:不管容器是否启动,直接重启容器

docker启动命令,docker重启命令,docker关闭命令
启动 systemctl start docker
守护进程重启 sudo systemctl daemon-reload
重启docker服务 systemctl restart docker
重启docker服务 sudo service docker restart
关闭docker service docker stop
关闭docker systemctl stop docker

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

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

相关文章

概率论发展史上的几个重要悖论

1. 蒙提霍尔问题(三门问题) 三门问题(Monty Hall problem)亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论,大致出自美国的电视游戏节目Lets Make a Deal。问题名字来自该节目的主持人蒙提霍尔(Monty Hall&…

数字图像处理(十)腐蚀和膨胀

文章目录前言一、腐蚀1.概念2.算法的具体步骤3.举例4.python代码二、膨胀1.概念2.算法步骤3.举例4.C代码5. 结果展示参考资料前言 二值图像中一类主要处理是对提取的目标图形进行形态分析。形态学处理中最基本的是腐蚀和膨胀。   腐蚀和膨胀是两个互为对偶的运算。腐蚀的作用…

g++无法找到动态库问题

文章目录一、错误发现二、include两种查找方式三、路径1.gcc与g路径2.头文件路径(1)默认路径(2)使用-l指定路径寻找。(3)gcc搜索头文件的顺序3.库文件路径(1)默认路径(2)编译时指定路径(3)在配置文件中指定路径(4)通过环境变量(5)查找顺序一、错误发现 在使用各种各样的C库的时…

栈进阶:ElasticSearch

栈进阶:ElasticSearch 文章目录前言一、学习ES1、ES课程简介2、聊聊Lucene创始人3、ES概述1、历史2、谁在使用3、ELK简介4、Solr和ES的差别1、ES简介2、Solr简介3、Lucene简介4、ElasticSearch与Solr比较5、ES安装及head插件安装1、ES安装2、Window下安装3、安装可视…

【深入浅出Spring6】第十期——尾声

一、Spring集成了Junit 之前我们只是使用Junit的测试注解 Test&#xff0c;并没有使用Spring对于Junit的支持 Spring6既支持Junit4、也支持Spring5 要想使用Spring对于Junit的支持&#xff0c;我们需要在pom中导入相关依赖 <!--我们引入Spring对junit支持的依赖 >> …

[LeetCode/力扣][Java] 0315. 计算右侧小于当前元素的个数(Count of Smaller Numbers After Self)

题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;按要求返回一个新数组 counts 。数组 counts 有该性质&#xff1a; counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。 示例1&#xff1a; 输入&#xff1a;nums [5,2,6,1] 输出&#xff1a;[2,1,1,0] 解释&…

CSS3------什么是css

什么是CSS 层叠样式表Cascading Style Sheets&#xff0c;缩写为CSS&#xff0c;是一种样式表语言&#xff0c;用来描述HTML或XML&#xff08;包括如SVG、MathML、XHTML 之类的XML 分支语言&#xff09;文档的呈现。 CSS描述了在屏幕、纸质、音频等其它媒体上的元素应该如何被…

uniapp之路由中携带参数跳转

目录 前言 一 路由跳转方式 1. 直接在 template中定义 2.直接在methods中定义 二 携带参数 1.在template中定义 2.在methods里定义 3. 拼接 前言 在我们写 uniapp 小程序时&#xff0c;时常遇到的就是路由携带参数进行跳转&#xff0c;这项功能似乎已成家常便饭一样&am…

(八)笔记.net core学习之特性Attribute声明、使用、验证

1.特性Attribute 特性&#xff1a;是用于在运行时传递程序中各种元素&#xff08;比如类、方法、结构、枚举、组件等&#xff09;的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号&#xff08;[ ]&…

缺陷修改实践——replace函数的运用|思考?

目录介绍问题出现问题分析解决方法优化实现总结介绍 大家好&#xff0c;我是清风。今天给大家分享一个项目中遇到问题解决问题的案例&#xff0c;编程其实就是一个思考的过程&#xff0c;缺少思考就没有灵魂&#xff0c;遇到问题先静下心去思考&#xff0c;想到方法后再去实践。…

HTML小游戏11 —— 横版恐龙大冒险游戏(附完整源码)

&#x1f482; 网站推荐:【神级源码资源网】【摸鱼小游戏】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】&#x1f4ac; 免费且实用的计…

U++ 插件学习笔记

Type&#xff1a; Editor&#xff1a;插件只能在编辑器有效 Runtime&#xff1a;代表打包出来也会有插件功能 Developer&#xff1a;开发者模式可以使用插件功能 Program&#xff1a;独立的小程序 ServerOnly&#xff1a;服务端可以使用插件功能 ClientOnly&#xff1a;客户…

三西格玛和六西格玛区别是什么?优思学院用一幅图告诉你

3西格玛和6西格玛的质量水平相距甚远&#xff0c;这个视频中用了三个实例说明了两者在不同行业上的具体绩效表现。优思学院认为&#xff0c;企业只有追求完美&#xff0c;不断改进流程&#xff0c;才能不断超越现状&#xff0c;才可以取得更大的业绩。 西格玛水平代表不同的过程…

朋友电脑密码忘了,我当场拔了她的电源,结果。。。

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 Windows密码忘了怎么办&#xff1f;一、5次shift键弹出粘滞键二、异常断电触发系统的自动修复三、未登录修改系统文件四、登录界面5次shift键…

【云原生 | 45】Docker搭建Registry私有仓库之配置Registry详解

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…

连接SQL Server 数据库

目录 一、启动 SQL Server Management Studio 1. 点击 SQL Server Management Studio 菜单进入 2. 选择服务器和身份验证方式 3. 点击连接进入数据库 二、新建数据库 1.数据库的概念 2. 看看当前有哪些数据库 3. 新建数据库 三、新建查询 1. 选中 test 数据库…

编码踩坑——记一次fastjson引发的空指针问题、引用标识$ref

本篇介绍在使用fastjson过程中遇到的一个问题&#xff0c;从而引申出使用fastjson时的注意事项——&#xff08;1&#xff09;尽量避免在实体中定义 get 开头的方法&#xff1b;&#xff08;2&#xff09;避免较深的实体字段层级&#xff1b;&#xff08;3&#xff09;避免实体…

企业信息化改革怎么做?

前几天遇到一位朋友提问&#xff0c;他说他们公司目前需要进行信息化改革&#xff0c;问我有哪些好用的信息化管理系统推荐&#xff1f;并附上了几点要求&#xff1a; 扩展性强&#xff08;公司管理结构变化很快&#xff0c;套装软件扩展升级太麻烦&#xff0c;并不适合&#…

怎样建立自己网站?【建立网站】

怎样建立自己网站&#xff1f;以前建立网站大部分情况下都是需要懂编程&#xff0c;又或者是懂一点代码然后去找源码模板做二次开发。不过随着技术的发展&#xff0c;建立自己网站的方式也在变多&#xff0c;例如目前比较流行的自助搭建网站。那么怎样建立自己网站呢&#xff1…

全卷积神经网络图像去噪研究-含Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、网络结构✳️ 三、实验结果✳️ 3.1 数据集与网络训练✳️ 3.2 卷积神经网络去噪实验✳️ 3.3 基于BM3D的对比实验✳️ 四、参考文献✳️ 五、Matlab代码获取✳️ 一、引言 图像去噪在底层视觉中的重要性可以从多方面体现出来。首先&…