Linux+docker部署项目

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: Linux+docker部署项目

1.虚拟机安装


1.1.创建新的虚拟机

1.2.选择自定义(高级)

1.3.选择虚拟机硬件兼容性

1.4.安装客户机操作系统

选择稍后安装

1.5.选择操作系统

1.6.配置安装位置

1.7.设置虚拟机处理器配置

1.8.设置虚拟机内存

根据需要自行设置

1.9.设置网络类型

1.10.选择I/O控制器类型,默认就好

1.11.选择磁盘类型,默认

1.12.选择磁盘

1.13.指定磁盘大小

1.14.指定磁盘文件

1.15.核对配置,单击完成

1.16.编辑虚拟机设置

1.17.开启虚拟机

1.18.开始安装,选择后等待安装

1.19.选择语言

1.20.配置安装信息

1.21.设置root密码

1.22.点击重启

1.23.登录系统

PS:输入密码的时候不会提示, 实际上已经输入了

出现红框中所示表示登录成功

1.24.配置网卡

输入ifconfig, 出现如红框所示表示没有ip地址

注:

新版的CentOS7开始对网卡的编号有一套规则,网卡的代号与网卡的类型有关:

  1. eno1: 代表由主板bios内置的网卡
  2. ens1:代表由主板bios内置的PCI-E网卡
  3. enp2s0: PCI-E独立网卡
  4. eth0: 如果以上都不使用,则返回默认的网卡
    ens33则属于第二种类型,即说明你的网卡是内置的PCI-E网卡

lo:全称loopback,是回环地址,经常被分配到127.0.0.1地址上,用于本机通信,经过内核处理后直接返回,不会在任何网络中出现

link/ether: MAC地址,硬件地址,全球唯一

网络设备状态标识:<BROADCAST,MULTICAST,UP,LOWER_UP>

UP: 网卡处于启动状态

BROADCAST: 网卡有广播地址,可以发生广播包

MULTICAST: 网卡发送多播包

LOWER_UP: L1是启动的,即网线是插着的。

1.24.1.使用vi编辑ifcfg-ens33
  • cd /etc/sysconfig/network-scripts
  • 输入命令: vi ifcfg-ens33,进入编辑界面
  • 点击insert键,进入插入模式, 此时鼠标不可用,使用上下左右按键移动鼠标
  • 将ONBOOT值改为yes
  • ESC键退出插入模式
  • :wq 表示保存并退出,如果退出不保存则输入 :q!

注:

ONBOOT:指明在系统启动时是否激活网卡,只有在激活状态的网卡才能连接网络进行网络通讯

DEVICE:网卡名称

BOOTPROTO=none 表示使用什么样的路由协议,如果值为none/static表示使用的是静态路由,那么接下来必须填写IPADDR(ip地址)、NETMASK(子网掩码)、GATEWAY(网关)、DNS1这几选项,如果是dhcp表示使用的是动态路由,上面提到的几项可以不填,由DHCP服务自动分配,如果填写了则以你填写的为准。

HWADDR:你网卡的物理地址,可以不写,系统自动生成

1.24.2.重启网络服务
service network restart
• 1

再次输入ifconfig

此时已经有ip地址了

2.安装MobaXterm软件


有其他远程连接工具可以不用安装

2.1.解压压缩包

2.2.绿色软件,双击MobaXterm.exe即可运行

3.使用MobaXterm连接虚拟机


3.1.点击session

3.2.选择SSH

3.3.填入ip地址, 点击下方的OK

3.4.输入用户名和密码连接服务器

3.5.连接成功,示例

4.切换为国内源


4.1.备份原有的源

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

ps: cp是copy的缩写,表示复制文件

4.2.查看是否备份完成

cd /etc/yum.repos.d
ll

4.3.生成阿里源

wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

PS:

wget 非交互式的网络文件下载工具

用法: wget [选项]… [url]…

-o --output 后接文件名,将信息写入指定的文件

-a --append-output 后接文件名,将信息添加到指定的文件

-d --debug 打印调试信息

-q --quiet 安静模式

-F --force-html 把输入文件当成html文件

-t --tries=num 设置重试的次数

-nc --no-clobber 不要重复下载已存在的文件

出现问题

输入

yum install wget

再次执行最初的命令

4.4.清空缓存

yum clean all

4.5.重新生成缓存

yum makecache

5.生成快照


5.1.点击管理快照

5.2.点击拍摄快照

5.3.填入必要信息点击拍摄快照

5.4.等待左下角保存完成

6.JDK及tomcat安装


6.1.使用MobaXterm上传文件

**PS: **

注:

tar包属于打包文件,Unix和类Unix系统上的压缩打包工具,可以将多个文件打包为一个文件,文件后缀为tar

tar.gz包是压缩文件,经过gzip压缩后的tar文件,形成tar.gz包,扩展名为tar.gz

两种文件的用途不同,tar.gz一般情况下是源代码安装包,需要先解压再经过编译、安装才能执行。tar包最初设计目的是将文件备份到磁带上(tape archive),因此得名,一般用于文件备份。

6.2.解压文件

#注意要进入上传的文件夹
tar -zxvf apache-tomcat-8.5.20.tar.gz
tar -zxvf jdk-8u151-linux-x64.tar.gz

参数说明:

z:指明压缩文件为gzip压缩

x:表示执行解压,如果使用c参数则表示压缩

v:显示详细的处理过程

f:要操作的文件名

-C:解压到指定目录,如:tar -zxf abc.tar.gz -C /root 将abc.tar.gz解压到root目录去。

自己安装的jdk适合安装在哪里?

自己安装的软件一般会放在/usr/local下,该目录与windows中的C:\Program Files类似。

其他常用目录结构:

/usr:系统级目录,类似于c:/windows

/usr/lib: 系统级目录,类型与c:/windows/system32

/opt: 用户级目录,可以近似的理解为d:/software,opt为可选的意思,一般用来安装第三方软件,或者是一些服务程序的安装

解压好后的样子

蓝色的是文件夹

红色的是压缩包

6.3.配置环境变量

进入刚才解压文件夹路径

输入pwd查看文件夹全路径

#配置环境变量
vim /etc/profile
#出现错误 -bash: vim: 未找到命令
#执行
yum install vim
# 按insert进入插入模式, 粘贴一下内容, 按esc退出, 输入:wq退出
#java environment
export JAVA_HOME=/zjzaki/jdk1.8.0_151
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#设置环境变量生效
source /etc/profile

6.4.进入tomcat安装目录

#进入解压的tomcat目录
cd apache-tomcat-8.5.20
#进入bin目录
cd bin
#查看文件目录
ll
#启动tomcat
./startup.sh

访问一下IP:8080

此时是没又开放防火墙端口,接着往下面走

6.5.防火墙设置

此处开放3306和8080端口, 3306后面需要使用(公网服务器不建议打开)

#开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#跟新防火墙规则
firewall-cmd --reload
#防火墙列表
firewall-cmd --zone=public --list-ports
#防火墙状态
systemctl status firewalld
#启动防火墙
systemctl start firewalld
#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

此时在访问ip:8080

成功访问tomcat服务器

7.Docker的安装


7.1.查看系统内核版本

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

#通过 uname -r 命令查看你当前的内核版本
uname -r

7.2.更新yum包

#使用 root 权限登录 Centos。确保 yum 包更新到最新。
yum update

7.3.卸载旧版本(如果安装过旧版本的话)

yum remove docker  docker-common docker-selinux docker-engine

7.4.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

7.5.设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

7.6.安装最新版本的Docker

yum install -y -y docker-ce docker-ce-cli containerd.io

7.7.启动Docker并设置开机启动

systemctl start docker
systemctl enable docker

7.8.验证Docker

docker version

7.9.配置阿里云镜像源

7.9.1登录进入阿里云镜像服务中心,获取镜像地址

进入阿里云容器镜像服务地址:

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

7.9.2.在/etc/docker目录下找到在daemon.json文件(没有就新建),将下面内容写入

{

“registry-mirrors”: [“https://xxxxxxx.mirror.aliyuncs.com”]

}

vim /etc/docker/daemon.json
按insert进入插入模式,写入内容
写入完成后, 按esc, 最后输入:wq 保存并退出

7.9.3.重启daemon

systemctl daemon-reload

7.9.4.重启docker服务

systemctl restart docker

8.使用docker搭建mysql环境


#拉取镜像
docker pull mysql:5.7
#启动镜像
docker run -p 3306:3306 --name mysql1   -di -v /home/zjzaki/data/mysql/mysql.conf.d/:/etc/mysql/mysql.conf.d/ -v /home/zjzaki/data/mysql/data/:/var/lib/mysql -v /home/zjzaki/data/mysql/log/:/var/log -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

9.发布项目


9.1.数据库的创建

9.1.1.使用navicat连接数据库

单击测试连接,出现以下弹窗表示连接成功

9.1.2.创建数据库

9.1.3.执行sql文件, 建表

9.2.上传war包到tomcat的webapps路径下

9.3.重启tomcat服务器

#进入tomcat的bin目录!!!
cd /zjzaki/apache-tomcat-8.5.20/bin
#关闭tomcat服务器
./shutdown.sh
#启动tomcat服务器
./startup.sh

9.4.访问ip:8080/oapro/

输入账号: admin 密码: 123456

目录
相关文章
|
10天前
|
存储 关系型数据库 MySQL
美团面试:MySQL为什么 不用 Docker部署?
45岁老架构师尼恩在读者交流群中分享了关于“MySQL为什么不推荐使用Docker部署”的深入分析。通过系统化的梳理,尼恩帮助读者理解为何大型MySQL数据库通常不使用Docker部署,主要涉及性能、管理复杂度和稳定性等方面的考量。文章详细解释了有状态容器的特点、Docker的资源隔离问题以及磁盘IO性能损耗,并提供了小型MySQL使用Docker的最佳实践。此外,尼恩还介绍了Share Nothing架构的优势及其应用场景,强调了配置管理和数据持久化的挑战。最后,尼恩建议读者参考《尼恩Java面试宝典PDF》以提升技术能力,更好地应对面试中的难题。
|
2天前
|
JavaScript 前端开发 Docker
如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
通过这些步骤,可以确保您的Next.js应用在多核服务器上高效运行,并且在Docker环境中实现高效的容器化管理。
59 44
|
2月前
|
Ubuntu Linux Shell
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(已成功解决)Linux环境报错—bash: wget: command not found;常见Linux发行版本,Linux中yum、rpm、apt-get、wget的区别;Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
339 68
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
|
13天前
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
65 19
|
24天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
56 23
|
14天前
|
SQL Java Maven
docker部署apollo
docker部署apollo步骤
|
25天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
48 22
|
28天前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
61 25
|
1月前
|
消息中间件 Linux
Linux:进程间通信(共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)
通过上述讲解和代码示例,您可以理解和实现Linux系统中的进程间通信机制,包括共享内存、消息队列和信号量。这些机制在实际开发中非常重要,能够提高系统的并发处理能力和数据通信效率。希望本文能为您的学习和开发提供实用的指导和帮助。
103 20
|
2月前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
89 5
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈