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!
欢迎点赞、关注、留言,收藏及转发,一起学习、交流!