linux服务器上部署项目:docker的上手、在docker中部署mysql、部署jar包、部署node.js前端项目 您所在的位置:网站首页 查看docker运行状态 linux服务器上部署项目:docker的上手、在docker中部署mysql、部署jar包、部署node.js前端项目

linux服务器上部署项目:docker的上手、在docker中部署mysql、部署jar包、部署node.js前端项目

#linux服务器上部署项目:docker的上手、在docker中部署mysql、部署jar包、部署node.js前端项目| 来源: 网络整理| 查看: 265

〇、前置工作安装虚拟机

先在自己的windows系统的电脑上装一个虚拟机,方便后续学习。

vmware安装教程:https://blog.csdn.net/qq_40950957/article/details/80467513

ubuntu安装教程:https://blog.csdn.net/m0_46680639/article/details/106018321

centos安装教程:https://blog.csdn.net/babyxue/article/details/80970526

后续拉镜像失败,可能原因是虚拟机不能上网,解决:https://blog.csdn.net/zhyulo/article/details/78730009

安装xshell和xftp

如果不是在本机部署,而是在云服务器上部署,那需要用到xshell和xftp进行远程部署和上传文件。

安装xshell教程:https://blog.csdn.net/weixin_40928253/article/details/80621724

安装xftp,进入链接下载就好,一步步安装好就行:下载链接

一、搭建docker1.搭建docker

Docker官方文档:https://docs.docker.com/ Docker

镜像仓库:https://hub.docker.com/search?type=image Docker

镜像仓库国内版:http://hub.daocloud.io/

默认安装路径:/var/lib/docker

步骤一:卸载旧的docker以及常用的docker命令

查看docker版本: docker version或者docker info 查看正在运行的docker容器有哪些(查看是否已经安装了docker): docker ps -a 或者docker ps 停止docker的运行: systemctl stop docker 停止某个docker的运行: docker stop 容器的id 删除某个docker容器: docker rm -f 容器的id 查看docker的镜像: docker images 删除docker的镜像: docker rmi 容器名称 卸载原来的docker: yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine 查看端口占用: https://jingyan.baidu.com/article/656db9183861cde381249c87.html

上面的命令好像没有卸载掉docker,彻底卸载docker的方法: https://blog.csdn.net/weixin_42294060/article/details/106188759

步骤二:安装docker

ubuntu下安装教程:

https://blog.csdn.net/qq_41204464/article/details/97539265

centos下安装教程:

https://www.cnblogs.com/caijunchao/p/13512410.html

步骤三:其他命令

设置docker开机自启动: systemctl enable docker 查看docker运行状态: systemctl status docker 启动docker: systemctl start docker 2.docker及linux常用命令切换到root用户(不同系统会有一点点区别): 在终端输入su然后回车 查看docker容器有哪些: docker ps -a 查询docker中正在运行的容器: docker ps 查看当前操作系统的环境: cat /etc/redhat-release 停止某容器: docker stop 容器id 删除某容器: docker rm -f 容器id 删除某镜像: docker rmi 镜像名 设置容器开机自启动(创建时可能忘了设置): docker update --restart=always 容器id 安装VM tools用来给虚拟机传入文件: https://blog.csdn.net/panjiansheng123/article/details/69870211/ 安装好之后就可以直接从windows系统中把文件拖到虚拟机桌面里面去了 删除文件: rm 文件名 删除目录(下面那条是强制删除): rm -r 目录 rm -rf 目录 如何解压zip: https://www.sohu.com/a/328563822_120047065 创建文件: vi 文件名

二、docker部署mysql1.从网络拉取镜像 先进入Docker镜像仓库国内版网站:http://hub.daocloud.io/ 搜索所需要的镜像,比如mysql 点击进入mysql镜像,点击版本 点击所需要的版本后面的拉取,并复制拉取命令 执行命令时要在拉取命令前面加上docker pull,静静地等待 完成后可以通过docker images命令查看镜像是否拉取成功 2.创建mysql的容器容器创建命令(运执行时删掉换行): docker run -itd -p 3309:3306 --name mysql8020 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.20 --lower-case-table-names=1 解释: 3309:3306是外部端口3309映射到3306中去,--name后面是容器命名 MYSQL_ROOT_PASSWORD=root设置mysql的root账户的密码为root 最后mysql:8.0.20是前面拉取到的镜像名,--lower-case-table-names=1设置mysql表名忽略大小写 设置容器开机自启动(创建容器时可能忘了设置): docker update --restart=always 容器id 3.访问mysql容器进入容器: docker exec -it mysql8020 bash 登录mysql: mysql -h 127.0.0.1 -u root -p回车再输入密码 或者试试mysql -h localhost -u root -p回车再输入密码 或者试试mysql -u root -p回车再输入密码 远程访问: mysql -uroot -proot -h部署的电脑的ip -p --port=3309

坑:

坑1:表名大小写问题 创建容器时一定要配置--lower-case-table-names=1 不然删掉重新创建容器吧 坑2:远程访问1251报错 进入mysql后执行以下语句: ALTER user 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER; ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';坑3:group by报错 方法一:进入mysql后执行以下语句(但是容器重启后会失效,治标不治本): set global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; 方法二:修改docker中mysql容器的配置文件,粘贴(快捷键Ctrl+ Shift+ V)如下配置: sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION 容器中mysql配置文件所在目录: /etc/mysql 如何在容器中修改mysql配置: https://www.cnblogs.com/yzgblogs/p/14279302.html 4.导入sql文件到mysql容器中

用windows电脑远程连接服务器的mysql容器,然后本地navicat操作,更简单也更不容易出错。

三、部署spring boot后端

另外,先安装、配置好maven:https://blog.csdn.net/a805814077/article/details/100545928

1.打包spring boot 项目

step 1 首先,在pom.xml中引入插件依赖:

org.springframework.boot spring-boot-maven-plugin ${spring.version} true apijson.demo.DemoApplication repackage

step 2 修改配置:

修改数据库的ip、端口名、数据库名等

step 3 打包:

step 3 报错了,解决方法:

https://blog.csdn.net/sunshine77_/article/details/102720041

step 4 再来一次step 2,成功:

step 5 可以尝试运行下jar包(这步可跳过):

在jar包目录下运行cmd命令:java -jar cigarette-1.0.0.jar然后回车,可能会遇到端口被占用的问题,pom.xml中配置换个端口就好了。

2.部署方式一:在docker中部署jar包先把jar包从U盘拷贝到任意一个目录:我是拷贝到:/home/nlp/文档/中,完整目录为:/home/nlp/文档/cigarette-1.0.0.jar 拉镜像: docker pull java:8 在/home/nlp/文档/下创建目录cigar: mkdir /home/nlp/文档/cigar/ 复制jar包到cigar中: cp /home/nlp/文档/cigarette-1.0.0.jar /home/nlp/文档/cigar/cigarette-1.0.0.jar 在cigar中创建dockerfile文件: cat>>dockerfile回车 紧接着键入以下内容后按ctrl+D保存: FROM java:8 MAINTAINER springboot ADD cigarette-1.0.0.jar cigarette-1.0.0.jar EXPOSE 9000 ENTRYPOINT ["java","-jar","cigarette-1.0.0.jar"] 解释: FROM: 基础镜像,通过jdk8镜像开始 MAINTAINER: 维护者 ADD: 复制jar包到镜像内,名字也为cigarette-1.0.0.jar EXPOSE: 声明端口 ENTRYPOINT: docker启动时运行的命令,这里就是容器运行就启动jar服务 创建容器: 在cigar文件夹中运行docker build -t springboot . springboot是我取的容器名,最后的点不能忘了 启动容器: docker run -d -p 8086:9000 springboot 8086是外部端口,映射到容器中的9000端口去,我们通过ip:8086就可以访问项目了 3.部署方式二:不使用docker,安装jdk运行jar包centos安装jdk1.8教程:https://blog.csdn.net/weixin_42266606/article/details/80863781在jar包目录下执行命令java -jar cigarette-1.0.0.jar开机自动运行jar包教程:https://blog.csdn.net/weixin_36254822/article/details/112623994 修改项目名,我的是cigar_h 修改jdk路径,我的是/usr/local/java/jdk1.8.0_301/bin/java 修改jar包路径,我的是/usr/local/cigar/cigarette-1.0.0.jar 四、部署前端1.直接用node.js运行

在部署之前,修改ip、端口配置。

linux安装node.js10+教程:https://blog.51cto.com/u_1693346/2344694linux为node.js配环境:依次修改以下配置文件: vim /etc/bashrc vim /etc/profile 两个都要修改,不然环境变量只生效一会 在末尾添加(根据你自己的nodejs安装路径来): export PATH=/usr/local/nodejs/node-v10.15.0-linux-x64/bin:$PATH export NODE_PATH=/usr/local/nodejs/node-v10.15.0-linux-x64/lib/node_modules 使配置文件生效: source /etc/profilesource /etc/bashrc 运行项目: 项目目录中执行命令npm install。 项目目录中执行命令npm run dev运行项目。2.docker+nginx部署安装nginx镜像: docker pull nginx

进入前端项目所在路径,然后:

创建Dockerfile: vi Dockerfile 粘贴配置: FROM nginx:latest MAINTAINER tracy COPY dist/ /usr/share/nginx/html/ 创建镜像(nginx为镜像名字): docker build -t nginx . 创建容器: docker run -d --name nginx -p 8000:80 nginx 外部端口为8000,内部为80 设置容器开机自启动(创建容器时可能忘了设置): docker update --restart=always 容器id


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有