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

docker部署项目

时间:2022-12-07 20:24:14浏览次数:29  
标签:tomcat 项目 部署 jar yum setfile 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!

欢迎点赞、关注、留言,收藏及转发,一起学习、交流!

标签:tomcat,项目,部署,jar,yum,setfile,docker
From: https://www.cnblogs.com/folyh/p/16964417.html

相关文章

  • dubbo服务地址错误或服务没启动导致项目启动不了
    在开发项目中,遇到错误,要做的首要事情就是查看错误日志。本次遇到的问题,主要是自己在eclipse启动项目,项目启动一半卡住了,控制台没有任何相关错误信息。自己就这样无可奈何了......
  • Idea中1个springboot项目启动N份服务
    使用的idea版本是IntelliJIDEA2022.2.3(UltimateEdition)Build#IU-222.4345.14,builtonOctober5,2022 01  02  从服务ImApplication18081复制......
  • 容器部署samba服务
    samba服务的容器镜像:elswork/sambadockerhub页面:https://hub.docker.com/r/elswork/sambadockercompose部署samba---dockernetworkcreatedocker_networkc......
  • jenkins(二) 在jenkins服务所在的服务器部署项目代码
    1.jenkins所在的服务器本地部署项目a。新建item   b.选择freestyle project输入名称c.该item配置git仓库以及身份认证(git的账号密码),指定分支 d.配置......
  • gin框架项目实战系列汇总
    最近打算整理重构项目的一些使用心得,打算做以下系列更新:gin-注册路由gin-中间件gin-http/https配置gin-配置初始化-vipergin-错误定义gin-统一响应responsegin-zap......
  • ​Docker网络实现的基本原理
    Docker的网络实现基本原理是利用了Linux的网络命令空间和虚拟网络设备,因为Linux通过在内核中进行数据复制来实现虚拟接口之间的数据转发,即发送接口的发送缓存中的数据包将......
  • Docker网络实现的基本原理
    Docker的网络实现基本原理是利用了Linux的网络命令空间和虚拟网络设备,因为Linux通过在内核中进行数据复制来实现虚拟接口之间的数据转发,即发送接口的发送缓存中的数据包......
  • docker image inspect image:tag docker stats --no-stream
    dockerstatsnginx--no-stream--format"{{json.}}"[root@localhost12-7]#dockerimageinspectnew_img:v1|grep"qinrui""whiletrue;doech......
  • 修改Docker默认镜像和容器的存储位置
    一、WhyDocker默认的镜像和容器存储位置在/var/lib/docker中,如果仅仅是做测试,我们可能没有必要修改,但是当大量使用的时候,我们可能就要默认存储的位置了。二、How......
  • docker 部署 rabbitmq(持久化) 和postgresql redis mysql
    rabbitmq:dockerrun-d--hostname=rabbitmq--restart=always-eRABBITMQ_DEFAULT_USER=admin-eRABBITMQ_DEFAULT_PASS=admin--name=rabbitmq-p5672:5672-p15672......