luffcc项目-16-luffcc前端项目部署,配置服务器的安全组、Docker 命令、前端项目部署,使用docker进行容器化管理进行持续集成部署、把前端项目通过nginx容器来运行
一、购买服务器
阿里云:http://www.aliyun.com/
完成了服务器购买以后,对于登录密码进行初始化。
重置完成以后,我们就可以通过一些ssh软件或者终端连接远方的Linux服务器。
注意:
windows的终端是没有ssh命名,如果要在windows下面远程连接服务器,有2种方式:
- 安装xshell,putty
- 通过git,git的命令工具窗口本身内置了linux的常用命令,里面就有ssh
ssh 登录用户@服务器公网地址例如:ssh root@8.131.88.74
二、配置服务器的安全组
我们选择在原有的基础上开放 6379,8080,8000,3306
注意,6379可以选择不开放,如果开发,建议配置下密码。
接下来,我们可以就开始项目的部署
还有进行域名解析
三、Docker 命令
1.通用命令
查看docker 当前版本
docker version
# 启动docker
sudo service docker start# 停止docker
sudo service docker stop# 重启docker
sudo service docker restart
2.镜像操作[image]
列出所有镜像
docker image ls
# 上面的命令时省略了 --all
docker image ls --all
拉取镜像
如果不指定版本号,默认拉取最新版本的镜像
docker image pull <镜像名称:版本号>
删除镜像
删除的时候,必须注意是否有容器在运行当前镜像文件,如果在使用,则需要先停止删除容器,才能删除镜像
docker image rm <镜像名称/镜像ID>
把docker中的镜像打包成文件
用于分享发送给他人,或备份
docker save -o <文件名.tar.gz> <镜像名>
把镜像文件加载到docker中
docker load -i <文件名.tar>
3.容器操作[container]
(1)创建容器
必须先有镜像,才能运行创建容器,需要指定使用的镜像名,并且设置创建容器以后,执行对应的第一条命令
docker run <参数选项> <镜像名称> <命令>
例如:使用"hello-world"镜像,创建一个容器,但没有进行任何操作
docker run hello-world
例如:使用ubuntu镜像,创建一个名为ubuntu1
docker pull ubuntu:18.04
docker run -it --name=ubuntu1 ubuntu:18.04 bash
注意:必须启动的时候,让容器运行bash解析器,才能在接下来的操作让容器不会立刻关闭,而且也能够让我们可以输入linux终端命令, 如果我们一般创建一个容器,选项都是: -itd
docker run的选项
-t 表示容器启动后会进入其命令行终端
-i 表示以“交互模式”运行容器
–name 表示设置容器的名称
例如,使用ubuntu镜像,创建一个名为ubuntu2,并且在后台运行的容器像
docker run -itd --name=ubuntu2 ubuntu<:版本> ubuntu
-d 创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)
(2)列出所有容器
docker container ls # 所有正在启动运行的容器docker container ls --all # 所有容器[不管是否在启动运行中]
(3)启动容器【可以同时启动多个容器,容器之间使用空格隔开】
# 启动一个容器
docker container start <容器名称/容器ID># 启动多个容器
docker container start <容器名称/容器ID> <容器名称/容器ID> <容器名称/容器ID>
(4)停止容器
docker container stop <容器名称/容器ID>
(5)杀死容器
在容器无法停止的时使用
docker container kill <容器名称/容器ID>
(6)进入容器
要进入容器,必须当前容器是启动状态的
docker container exec -it <容器名称/容器ID> <第一个命令>
(7)删除容器
docker container rm <容器名称/容器ID>
(8)把容器保存成镜像
docker commit <容器名称/容器ID> <新镜像名>
扩展
使用docker命令需要管理员权限,如果希望每次输入docker相关命令时,不用sudo,可通过以下命令进行设置
sudo usermod -a -G docker $USER
sudo service docker restart
newgrp - docker
官方提供的ubuntu系统镜像,工具命令很少,如希望内部安装ping、ifconfig网卡或者vim等工具,可以通过以下命令进行设置[需要联网,而且耗时]
apt-get update
apt install net-tools # ifconfig
apt install iputils-ping # ping
四、前端项目部署
将前端settings配置文件中使用的配置改一下
export default {Host:"http://www.cwj666.xyz",// 服务器地址...
}
自动化程序会将打包的文件自动生成到项目的dist文件夹中。
编译完成的内容会被保存在dist目录下,并且编译出来的项目,不能直接通过file://来访问,只能通过http服务器的运行这个项目。
根据我们上面的部署方案,我们需要安装nginx来运行这个前端项目。
把项目上传到之前建好的码云仓库里面。
git add .
git commit -m "项目完成"# 注意:项目编译以后的文件,默认在vue项目是不会进行版本跟踪,所以需要在前端项目的.gitignore,中删除 /dist/
git push origin master # 或者dev线上合并分支,把dev的内容合并到master里面
1.使用docker进行容器化管理进行持续集成部署
更新ubuntu的apt源索引
sudo apt-get update
安装包允许apt通过HTTPS使用仓库
sudo dpkg --configure -a
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
添加Docker官方GPG key【这个是国外服务器地址,所以网路不好的时候,会失败!在网路好的情况下,多执行几次就没问题了】
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
设置Docker稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
添加仓库后,更新apt源索引
sudo apt-get update
前面的准备工作完成以后,接下来安装最新版Docker CE(社区版)
sudo apt-get install docker-ce
检查Docker CE是否安装正确
sudo docker run hello-world
出现了helo from Docker则表示上面的安装成功!
获取镜像文件,可以直接去官方网站上获取: https://hub.docker.com/
2.把前端项目通过nginx容器来运行
Nginx是一款基于异步框架的轻量级/高性能的Web 服务器/反向代理服务器/缓存服务器/电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师Igor Sysoev(伊戈尔·赛索耶夫)所开发,最初供俄国大型网站Rambler.ru及搜寻引擎Rambler使用。
下载安装 nginx镜像
# 在docker中下载nginx镜像
docker image pull nginx# 使用git把码云上面的编译过的vue项目克隆到服务器/home# git clone 项目git地址
git clone https://gitee.com/cui_wenjun/study1.git
# 注意,上面提交的代码版本中,如果真正的前端项目编译代码在dev分支下面,则需要切换分支
# git checkout dev# 创建nginx容器,并以80端口对外提供服务
# /usr/share/nginx/html 是nginx在安装时,系统默认分配的网站项目的根目录
我的:docker run -itd -p 80:80 -v /home/study1/lycity/dist:/usr/share/nginx/html --name=lycity nginx
# 执行上面的命令,理论上来说,就可以让前端项目,可以阿里云的IP地址访问到了。"""
/etc/nginx # nginx容器中nginx的配置目录
/etc/nginx/conf.d/default.conf # 默认站点的配置文件
/usr/share/nginx/html # nginx容器中网站根目录
"""docker container start lycity
docker container exec -it lycity bash
docker run 选项:
-v 目录映射,把服务器中的真实目录,映射到 容器内部的指定目录,当容器内部操作指定目录时,则相当于操作服务器里面的真实目录
-p 端口映射,把服务器中的真实端口,映射到 容器内部的执行端口,当用户访问/操作真实端口时,则相当于访问/操作容器里面的端口
上面部署命令之后,我们就可以通过IP来访问项目了,但是我们项目一般通过域名提供给用户来进行访问,这就是为什么前面要进行域名解析。
手动配置nginx的配置:
# 进入nginx容器,修改/etc/nginx/conf.d/default.conf文件
# 要在容器里面编辑文件,可以通过 apt-get update 和 apt install vim 来安装一个编辑器。docker container exec -it lycity bash
apt-get update
apt install vimvim /etc/nginx/conf.d/default.conf
# 修改 server_name 对应的路径
server{listen 80;server_name www.cwj666.xyz;...
}# 按Esc键
# 输入 :wq 保存文件# 重启nginx
nginx -s reload
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
