码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • docker部署项目


    文章目录

    • 前言
      • 一、下载安装docker:
        • 1.前提工作
          • 1.1 查看linux版本
          • 1.2 yum包更新到最新
          • 1.3 安装工具包
          • 1.4 设置yum源并更新yum包索引
        • 2.安装docker
          • 2.1 安装docker-ce
          • 2.2 启动docker
          • 2.3 查看已安装docker版本
          • 2.4 设置docker开机自启动
          • 2.5 配置镜像加速
        • 3.docker常用命令
      • 二、部署项目:
        • 1.配置tomcat、项目配置及项目jar包。
          • 1.1 创建根目录下统一配置目录
          • 1.2 将tomcat、项目配置及项目jar包放入上面统一目录中,以便后面引用
          • 1.3 赋予统一目录权限
            • 1.3.1 根目录/setfile下所有文件的读写权限
            • 1.3.2 赋予tomcat的catalina可执行权限
        • 2.部署并启动项目
          • 2.1 先拉tomcat镜像及对应的jdk
          • 2.2 再创建容器(以容器app-01为例,之后的换个名字即可)
          • 2.3 将新建的docker容器的tomcat、项目配置及jar包引用该宿主已配置好统一的tomcat、项目配置及jar包。
          • 2.4 启动并设置启动tomcat及jdk
        • 3.重启项目等其他命令
          • 3.1 启动、停止、重启项目
          • 3.2 容器加入自动重启


    前言

    为了提高服务器的利用率,且便于项目部署及发布,服务器采用docker部署多个项目jar包。该项目采用ssm+shiro+mysql+redis+mongdb等。

    备注:本文以CentOs 7为例。

    一、下载安装docker:

    1.前提工作

    1.1 查看linux版本

    Docker 要求 CentOS 系统的内核版本不低于 3.10

     uname -r 
    
    • 1

    我的版本是:3.10.0-1160.53.1.el7.x86_64

    1.2 yum包更新到最新
    yum -y update
    
    • 1
    1.3 安装工具包
    sudo yum install ‐y yum‐utils device‐mapper‐persistent‐data lvm2
    
    • 1
    1.4 设置yum源并更新yum包索引
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    yum makecache fast
    
    • 1
    • 2
    • 3

    2.安装docker

    2.1 安装docker-ce
    yum -y install docker-ce
    
    • 1
    2.2 启动docker
    systemctl start docker
    
    • 1
    2.3 查看已安装docker版本
    docker -v
    
    • 1

    在这里插入图片描述

    2.4 设置docker开机自启动
    systemctl enable docker
    
    • 1
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    二、部署项目:

    备注:
    本文主要是本地单机用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
    1.2 将tomcat、项目配置及项目jar包放入上面统一目录中,以便后面引用

    在这里插入图片描述

    1.3 赋予统一目录权限
    1.3.1 根目录/setfile下所有文件的读写权限
    chmod 775 /setfile/*
    
    • 1
    1.3.2 赋予tomcat的catalina可执行权限
    chmod +x /setfile/config/catalina.sh
    
    • 1

    2.部署并启动项目

    2.1 先拉tomcat镜像及对应的jdk
    docker pull tomcat:8.5.82-jdk8
    
    • 1

    在这里插入图片描述

    2.2 再创建容器(以容器app-01为例,之后的换个名字即可)

    备注:
    前面的端口8180是该宿主机对应app-01的端口,如果是新的app-02则再开另外的端口如8280,
    后面的8080端口是该容器的端口,同一台宿主机可以都用这个端口,或者用其他端口。

    docker run -p 8180:8080 --name app-01 \ 
    
    • 1
    2.3 将新建的docker容器的tomcat、项目配置及jar包引用该宿主已配置好统一的tomcat、项目配置及jar包。

    // 该路径为放置项目jar包路径

    -v /setfile/webapps/:/usr/local/tomcat/webapps/ \
    
    • 1

    // 该路径为项目日志路径

    -v /setfile/logs/:/setfile/logs/ \
    
    • 1

    // 该路径为项目统一时间配置

    -v /etc/localtime:/etc/localtime \
    
    • 1

    // 该路径为tomcat的server.xml配置路径

    -v /setfile/config/server.xml:/usr/local/tomcat/conf/server.xml \
    
    • 1

    // 该路径为项目字体配置路径

    -v /setfile/config/STFANGSO.TTF:/usr/share/fonts/chinese/STFANGSO.TTF \
    
    • 1

    // 该路径为项目证件配置路径

    -v /setfile/cert/:/cert/ \
    
    • 1

    // 该路径为tomcat的catalina.sh路径

    -v /setfile/config/catalina.sh:/usr/local/tomcat/bin/catalina.sh \
    
    • 1
    2.4 启动并设置启动tomcat及jdk
    --restart=always -d tomcat:8.5.82-jdk8
    
    • 1

    3.重启项目等其他命令

    3.1 启动、停止、重启项目
    docker start app-01  	// 启动
    docker stop app-01  	// 停止
    docker restart app-01 	// 重启
    
    • 1
    • 2
    • 3
    3.2 容器加入自动重启
    docker update --restart=always app-01
    
    • 1

    随心所往,看见未来。Follow your heart,see light!

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

  • 相关阅读:
    RT-Thread 快速上手(学习)
    Java将JPG/PNG图片转换为WEBP格式,以及WEBP转换成JPG/PNG格式
    2022届秋招Java岗高频面试题盘点,老司机也未必全会,真的太卷了
    基于Python实现的语音特征提取声音信号处理
    自动化测试的重要性:为何追求自动化?
    python发送邮件和企业微信
    Go缓冲通道和工作池
    软件产品为什么要做压力测试?压力测试报告如何获取?
    Android11去掉Settings中的网络和互联网一级菜单
    Postman —— HTTP请求基础组成部分
  • 原文地址:https://blog.csdn.net/qq_45738250/article/details/128211488
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号