对于独立的项目(前端、后台单体服务、数据库),部署到新服务器上时,常常需要繁琐的配置与环境安装,这里介绍Centos 7.6下如何搭建基于Docker的环境,以及如何使用docker部署一套Vue + SrpingBoot + MySQL的单体项目

建立环境使用的用户

拿到服务器,建议不要使用root来完成操作,建议建立一个专用的用户app,来负责项目部署等

su root

# 建立用户app及用户组appg
groupadd appg
useradd -g appg app
passwd app # 查看用户
id app # 为hadoop添加sudo权限
visudo
app ALL=(ALL) ALL
# ALL=(ALL) NOPASSWD: ALL # 免密码sudo,暂时不使用 # 切换到app用户
su app # 建立相关目录
cd ~
mkdir temp # 存放临时文件
mkdir soft # 存放环境和软件数据
mkdir product # 存放项目产品等部署文件

初始环境安装与配置

yum换源

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

vi /etc/yum.repos.d/CentOS-Base.repo
# 将 mirrorlist= 注释掉
# 将 baseurl= 开头行取消注释, 把该行内的域名(例如mirror.centos.org)替换为 mirrors.tuna.tsinghua.edu.cn sudo yum makecache

参考

时间更新

# 安装utpdate工具
yum -y install utp ntpdate # 设置系统时间与网络时间同步
ntpdate cn.pool.ntp.org # 将系统时间写入硬件时间
hwclock --systohc # 设置系统时区为上海
timedatectl set-timezone Asia/Shanghai

Docker以及Docker compose安装

  1. 检查服务器环境是否支持docker

    Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上;

    Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

    使用以下指令检查内核版本uname -r

  2. 安装docker-ce

    按顺序执行以下指令(root账户下)

# 移除旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
# 安装系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加软件源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 清理缓存
yum makecache fast
# 安装docker-ce
yum -y install docker-ce
# 启动docker服务
systemctl start docker
# 开机启动docker
systemctl enable docker
# 检查
docker -v
  1. 更改docker镜像源(可选)
vi /etc/docker/daemon.json

在daemon.json文件内写入

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
  1. 安装docker-compose(root账户下)
  • 方法一
# 国内源下载
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
  • 方法二
# 安装企业版linux附加包(epel)
yum -y install epel-release
# 安装pip
yum -y install python-pip
pip install --upgrade pip
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
# 安装docker-compose
pip install docker-compose
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple docker-compose
docker-compose --version
  1. 添加当前用户到 docker 用户组,可以不用 sudo 运行 docker

    docker所属用户是root,为什么这里要添加docker用户组?因为当docker进程启动的时候,会设置该套接字可以被docker这个分组的用户读写
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo service docker restart # 重启docker服务
su root # 切换到root用户
su app # 再切换到原来的应用用户以上配置才生效
# 测试添加用户组
docker run hello-world

docker部署

  1. 服务器内先切换到app用户下,并进入/home/app/soft目录

  2. 码云(https://gitee.com/spzmmd/docker-env)下载环境部署文件,将目录上传到服务器/home/app/soft目录下

  1. 以singleBoot项目为例,从以下地址下载前端和后端项目并打包出前端文件(在dist文件夹下,包含static目录和index.html文件)和jar后端文件(在target目录下,需要改名为app.jar)

将前端文件上传到 /home/app/soft/single-deploy/nginx/page 目录

将后端文件app.jar上传到 /home/app/soft/single-deploy 目录

将初始化sql语句文件上传到 /home/app/soft/single-deploy 目录

  1. 命令行进入 /home/app/soft/single-deploy 目录,执行以下命令
docker-compose up -d
docker ps

此时访问ip:8888,即可访问前端页面,单体项目部署成功

最新文章

  1. 数据结构与算法(1)支线任务4——Lowest Common Ancestor of a Binary Tree
  2. 使用 jquery 获取当前时间的方法
  3. Unity手游之路<七>角色控制器
  4. Linux 之 shell 比较运算符
  5. 如何在IIS 7.5中部署Asp.Net MVC 5的网站
  6. 判断A树是否包含B树结构
  7. php获得当前日期时间 date函数
  8. zend framework安装中出现的问题与总结
  9. 元素类型为 "package" 的内容必须匹配 "(result-types?,interceptors?,default-interceptor-ref?
  10. 初识Hibernate之环境搭建
  11. 对DataTable(或者DataSet)修改后,提交修改到数据库
  12. [Android]利用run-as命令在不root情况下读取data下面的数据
  13. 【2013Esri全球用户大会精彩案例】GIS for Philadelphia’s Finest --费城警用GIS
  14. centos安装nginx和配置
  15. python列表中的值转换为字符串,及列表里的所有值拼接成一个字符串 的方法
  16. hive命令的执行方式
  17. seq 序列
  18. 02.CSS选择器-->:focus
  19. Cloudera Manager安装之Cloudera Manager安装前准备(Ubuntu14.04)(一)
  20. RedisDesktopManager-0.9.3 for windows (转)

热门文章

  1. 苏黎世财经对话区块链专家,NGK如何利用时间价值实现自身的垂直扩张?
  2. Mac上的Redis安装和使用
  3. E百科 | 基于MEC的边缘AI服务
  4. SpringBoot Test 多线程报错:dataSource already closed
  5. CSS实现页面切换时的滑动效果
  6. 小白养成记——MySQL中的排名函数
  7. 小白养成记——JavaWeb之文件的上传
  8. Java基本概念:类
  9. CMD(命令提示符)的基本操作(文件)
  10. python模块win32com中的early-bind与lazy-bind(以Autocad为例)