docker部署项目
@
前言
为了提高服务器的利用率,且便于项目部署及发布,服务器采用docker部署多个项目jar包。该项目采用ssm+shiro+mysql+redis+mongdb等。
备注:本文以CentOs 7为例。
一、下载安装docker:
1.前提工作
1.1 查看linux版本
Docker 要求 CentOS 系统的内核版本不低于 3.10
uname -r
我的版本是:3.10.0-1160.53.1.el7.x86_64
1.2 yum包更新到最新
yum -y update
1.3 安装工具包
sudo yum install ‐y yum‐utils device‐mapper‐persistent‐data lvm2
1.4 设置yum源并更新yum包索引
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
2.安装docker
2.1 安装docker-ce
yum -y install docker-ce
2.2 启动docker
systemctl start docker
2.3 查看已安装docker版本
docker -v

2.4 设置docker开机自启动
systemctl enable docker
2.5 配置镜像加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
3.docker常用命令
// 若有旧版本docker卸载
yum remove docker docker-common docker-selinux docker-engine
// 删除镜像
docker rmi 容器名字
或者
docker rm-f 容器id
// 构建镜像
docker build
//停止docker服务:
systemctl stop docker
//重新加载docker配置文件
systemctl daemon-reload
// 查看运行镜像
docker ps
// 查看所有镜像
docker ps -a
// 查看主目录空间使用情况
df -h /home
// 查看空间
df -h
// 查看状态
docker stats
// 取消自启动
docker update --restart=no 容器ID
// 根据容器id查看进程
docker top 容器id
// 查看线程
docker top -p 进程id
// 查看整个docker启动日志
docker logs -f docker容器id
二、部署项目:
备注:
本文主要是本地单机用docker部署多个项目,所以只要用docker拉取tomcat及jdk,直连云服务器中redis、mysql、mongodb等服务即可。
前提在本地宿主机中先创建统一目录并配置好tomcat、项目配置及项目jar包,创建容器同时复制tomcat、项目配置及项目jar包。
之后更新多个项目的tomcat、项目配置及项目jar包时,只要更新宿主服务器的统一目录中的tomcat、项目配置、及项目jar包即可。
1.配置tomcat、项目配置及项目jar包。
备注:当前tomcat、项目配置及项目jar包都放在该宿主机根目录/setfile/下,具体引用目录结构如下:
1.1 创建根目录下统一配置目录
mkdir setfile
1.2 将tomcat、项目配置及项目jar包放入上面统一目录中,以便后面引用

1.3 赋予统一目录权限
1.3.1 根目录/setfile下所有文件的读写权限
chmod 775 /setfile/*
1.3.2 赋予tomcat的catalina可执行权限
chmod +x /setfile/config/catalina.sh
2.部署并启动项目
2.1 先拉tomcat镜像及对应的jdk
docker pull tomcat:8.5.82-jdk8

2.2 再创建容器(以容器app-01为例,之后的换个名字即可)
备注:
前面的端口8180是该宿主机对应app-01的端口,如果是新的app-02则再开另外的端口如8280,
后面的8080端口是该容器的端口,同一台宿主机可以都用这个端口,或者用其他端口。
docker run -p 8180:8080 --name app-01 \
2.3 将新建的docker容器的tomcat、项目配置及jar包引用该宿主已配置好统一的tomcat、项目配置及jar包。
// 该路径为放置项目jar包路径
-v /setfile/webapps/:/usr/local/tomcat/webapps/ \
// 该路径为项目日志路径
-v /setfile/logs/:/setfile/logs/ \
// 该路径为项目统一时间配置
-v /etc/localtime:/etc/localtime \
// 该路径为tomcat的server.xml配置路径
-v /setfile/config/server.xml:/usr/local/tomcat/conf/server.xml \
// 该路径为项目字体配置路径
-v /setfile/config/STFANGSO.TTF:/usr/share/fonts/chinese/STFANGSO.TTF \
// 该路径为项目证件配置路径
-v /setfile/cert/:/cert/ \
// 该路径为tomcat的catalina.sh路径
-v /setfile/config/catalina.sh:/usr/local/tomcat/bin/catalina.sh \
2.4 启动并设置启动tomcat及jdk
--restart=always -d tomcat:8.5.82-jdk8
3.重启项目等其他命令
3.1 启动、停止、重启项目
docker start app-01 // 启动
docker stop app-01 // 停止
docker restart app-01 // 重启
3.2 容器加入自动重启
docker update --restart=always app-01
随心所往,看见未来。Follow your heart,see light!
欢迎点赞、关注、留言,收藏及转发,一起学习、交流!
docker部署项目的更多相关文章
- docker部署项目 <三>
使用docker运行一个控制台项目,新建一个控制台测试项目 一.安装mono,直接在网易镜像中心找下载路径 docker pull hub.c..com/library/mono:latest 二.安 ...
- Weblogic部署项目三种方式
在weblogic中部署项目通常有三种方式:第一,在控制台中安装部署:第二,将部署包放在domain域中autodeploy目录下部署:第三,使用域中配置文件config.xml 进行项目的部署. 控 ...
- Linux Ubuntu从零开始部署web环境及项目 -----部署项目 (三)
上一篇讲了如何在linux搭建web环境,这边将如何部署项目. 1,打包项目包 2,上传项目包 将.war项目包通过xftp上传到tomcat目录wabapps目录下 3,启动项目 通过xshell命 ...
- 跟我一起使用Vue.js + Docker 部署项目
本文学习自:https://juejin.im/post/5bee5ddde51d457b8a33938c 项目环境是在ubuntu下,记得要在root目录下,不然安装vue会报错 npm insta ...
- tomcat deploy部署项目三种方法
1.将应用文件夹或war文件直接copy到tomcat的webapps目录下,这样tomcat启动的时候会将webapps目录下的文件夹或war文件的内容当成应用部署.这种方式最简单且无须书写任何配置 ...
- 使用docker部署项目
一.Dockerfile编写 FROM hub.c.163.com/library/java:8-alpine ADD target/*.jar app.jar EXPOSE 8761 ENTRYPO ...
- docker部署项目: centos+python+redis+mysql+uwsgi+nginx
一.Centos7安装docker 1.1 环境配置 先测试是否下载了docker:查看镜像:docker images没有下载,就依次执行以下环境的安装 ①curl http://mirrors.a ...
- docker部署项目,对镜像,容器的操作
服务器上的项目访问不了,所以我去看了看容器,果然 那我就删除容器呗 :docker rm 容器id docker rm f097e24a9a0f 说明:从镜像到容器,同一个镜像构建多个运行的 Dock ...
- docker 部署项目
一:我使用的是阿里云的ubuntu16.4系统. 项目数据库: # 数据源 spring: datasource: type: com.zaxxer.hikari.HikariDataSource d ...
- 利用docker 部署项目
docker_tomcat_jdk 7.0 1.6 app admin && api 1.yum install docker 2.service docker start 3.创建文 ...
随机推荐
- k8s中pod的容器日志查看命令
如果容器已经崩溃停止,您可以仍然使用 kubectl logs --previous 获取该容器的日志,只不过需要添加参数 --previous. 如果 Pod 中包含多个容器,而您想要看其中某一个容 ...
- 对vue中的data进行数据初始化
this.$data:是表示当前的改变后的this中的数据 this.$options.data():是表示没有赋值前的this中的数据,表示 初始化的data 一般可以使用Object.assign ...
- POJ1639 Picnic Planning (限制入度最小生成树)
节点1是有度数限制的,把节点1去掉,就会形成若干个连通块,在每个连通块内部求最小生成树(prim算法实现),并求出每个连通块与1相连的最短的边,这样形成了初始状态的生成树. 假设(1,x)这条边没在生 ...
- SpringMvc(五) - 支付宝沙箱和关键字过滤,md5加密,SSM项目重要知识点
1.支付宝沙箱 1.1 jar包 alipay-sdk <!-- alipay-sdk --> <dependency> <groupId>com.alipay.s ...
- Qt class 前置声明
转载:https://www.cnblogs.com/ycbeginner/p/9403976.html 在Qt开发项目中,经常会用到各种库,但是一般在.h文件中进行某类型变量定义时,都会对其类型的c ...
- Java注解(1):码农的小秘
很多码农在写代码的时候不太爱写注释,结果任务一多,时间一长,需求一改,就完全不知道当初自己都干了些啥了.好在现在大多数编程语言都有注释功能,能够在代码里面做一些备注,不至于时间长了忘掉.但这些注释只是 ...
- SpringBoot (四) - 整合Mybatis,逆向工程,JPA
1.SpringBoot整合MyBatis 1.1 application.yml # 数据源配置 spring: datasource: driver-class-name: com.mysql.c ...
- 9.MongoDB系列之创建副本集(二)
1. 如何设计副本集 大多数:选取主节点时需要由大多数决定,主节点只有在得到大多数支持时才能继续作为主节点,写操作被复制到大多数成员时就是安全的写操作.这里的大多数定义为"副本集中一半以上的 ...
- day01-3-界面显示&用户登录&餐桌状态显示
满汉楼01-3 4.功能实现02 4.2菜单界面显示 4.2.1功能说明 显示主菜单.二级菜单和退出系统功能 4.2.2代码实现 先搭建界面显示的大体框架,具体的功能后面再实现 创建MHLView类: ...
- Vue学习之--------插槽【默认插槽、具名插槽、作用域插槽】(2022/8/30)
插槽Vue.js官网介绍:https://vuejs.org/guide/components/slots.html 会牵涉到template的用法.占位.实际不渲染到页面中 1.默认插槽: 1.1 ...