Linux+docker部署项目

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 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

目录
相关文章
|
14天前
|
存储 Java Docker
使用Docker部署Java应用的最佳实践
使用Docker部署Java应用的最佳实践
|
1天前
|
Linux 测试技术 网络安全
【好玩的开源项目】Linux系统之部署吃豆人经典小游戏
【7月更文挑战第18天】Linux系统之部署吃豆人经典小游戏
19 1
|
3天前
|
Linux 测试技术 网络安全
【好玩的开源项目】Linux系统之部署跳一跳经典小游戏
【7月更文挑战第16天】Linux系统之部署跳一跳经典小游戏
25 6
|
4天前
|
Linux 测试技术 网络安全
【好玩的开源项目】Linux系统之部署adarkroom文字风格冒险小游戏
【7月更文挑战第15天】Linux系统之部署adarkroom文字风格冒险小游戏
21 4
|
2天前
|
JavaScript Linux 测试技术
【好玩的开源项目】Linux系统之部署proxx扫清黑洞小游戏
【7月更文挑战第17天】Linux系统之部署proxx扫清黑洞小游戏
11 1
|
7天前
|
Docker Python 容器
容器化技术,特别是Docker,已经成为现代软件开发和部署的重要工具。
容器化技术,特别是Docker,已经成为现代软件开发和部署的重要工具。
|
7天前
|
Kubernetes 持续交付 开发者
微软Azure云上部署Docker容器的技术实践
【7月更文挑战第15天】Docker与Azure的集成,为开发者提供了一种快速、可扩展和可维护的应用部署方式。通过在Azure平台上部署Docker容器,开发者可以充分利用Azure丰富的云服务和强大的基础设施,实现应用的快速迭代和高效运行。未来,随着Docker和Azure的不断发展和集成,我们可以期待更加便捷和高效的容器化应用部署体验。
|
7天前
|
Kubernetes Cloud Native 持续交付
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
|
14天前
|
存储 移动开发 程序员
Docker部署Dillinger个人文本编辑器
【7月更文挑战第6天】Docker部署Dillinger个人文本编辑器
26 1
|
1天前
|
Ubuntu Java Linux
如何基于Alpine Linux创建更小的Docker镜像
如何基于Alpine Linux创建更小的Docker镜像?