VMWare安装使用、Linux命令、Docker安装和Linux项目部署

Linux

  • 一、Linux基础
    • 1.1 Linux介绍
    • 1.2 Linux常见发布版本
    • 1.3 Linux和Windows的区别
    • 1.4 Linux常见命令
  • 二、VMWare安装使用
    • 2.1 VMWare安装
    • 2.2 创建虚拟机
    • 2.3 虚拟机环境配置
  • 三、Docker安装使用
    • 3.1 什么是虚拟化
    • 3.2 什么是Docker
    • 3.3 Docker的安装配置
  • 四、Linux项目部署
    • 4.1 JDK环境配置
    • 4.2 Tomcat环境配置
      • 4.2.1 使用Docker配置Tomcat
      • 4.2.2 使用压缩包配置Tomcat
    • 4.3 MySQL环境配置
      • 4.3.1 使用Docker配置MySQL
      • 4.3.2 使用压缩包配置MySQL


一、Linux基础

1.1 Linux介绍

Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。

Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。

Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

1.2 Linux常见发布版本

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等

1.3 Linux和Windows的区别

目前国内 Linux 更多的是应用于服务器上,而桌面操作系统更多使用的是 Windows

比较 Windows Linux
界面 界面统一,外壳程序固定所有 Windows 程序菜单几乎一致,快捷键也几乎相同 图形界面风格依发布版不同而不同,可能互不兼容。GNU/Linux 的终端机是从 UNIX 传承下来,基本命令和操作方法也几乎一致。
驱动程序 驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时很难支持。另外,有时硬件厂商未提供所需版本的 Windows 下的驱动,也会比较头痛。 由志愿者开发,由 Linux 核心开发小组发布,很多硬件厂商基于版权考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题(是否存在和安装方法)会一筹莫展。但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。HP、Intel、AMD 等硬件厂商逐步不同程度支持开源驱动,问题正在得到缓解
使用 使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十分有利。 图形界面使用简单,容易入门。文字界面,需要学习才能掌握。
学习 系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习困难。 系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易
软件 每一种特定功能可能都需要商业软件的支持,需要购买相应的授权。 大部分软件都可以自由获取,同样功能的软件选择较少

总结:windows系统需要进行图形化界面的渲染,会消耗系统资源,Linux也有图形化界面的系统,但更多的是使用命令式的系统作为服务器使用

1.4 Linux常见命令

# 切换到根目录
cd /
# 切换到上级目录
cd ..
# 查看当前文件夹下的所有文件
ls
# 查看当前文件夹下的所有文件及权限
ll
# 查看当前文件夹下的所有文件及隐藏文件
ls -a
# 创建一个文件夹
mkdir文件夹名
# 创建多级文件夹
mkdir -p 一级文件夹/二级文件夹
# 删除文件(慎用)
rm -rf
# 移动文件(剪切)
mv 移动文件 新文件地址
# 文件重命名
mv 原文件名 新文件名
# 查看目录是否存在
find 根目录名/文件名
# 复制文件/目录
cp -r 复制文件  复制的地址
# 创建文件
touch 文件名.扩展名

# 编辑文件
vi 文件名.扩展名
# 进入文件后,输入i 进行编辑 编辑完成,ESC键+':eq' 保存并退出
# ':q!'强制退出
# 'ctrl + z' 中止
# 'ctrl + c' 强制终止
# 'exit'退出容器

clear 清屏

# 下载vim命令
yum -y install vim*

# 查看文件内容
cat 文件名      # 只能显示最后一屏的女人
more 文件名	 # 按百分比显示   回车键:下一个百分比  空格:下一页
less 文件名	 # 可以使用上下键操作

# 压缩和解压缩
# z:调用gzip压缩命令进行压缩
# c:打包文件
# v:显示运行过程
# f:指定文件名
# x:解压压缩包
# 压缩
tar -zcvf 文件名.tar.gz  压缩位置 
# 解压
tar -zxvf 压缩包      (压缩包如:java.tar.gz)


# 显示当前所在的文件路径
pwd

# 显示当前系统中运行的进程
ps -ef

# 关闭指定的服务
kill -q 服务id

# 文件授权
chmod u=rwx,g=rwx,o=rwx 文件名
chmod 741 文件名

# 查看当前开启的端口号
iptables -nL

二、VMWare安装使用

2.1 VMWare安装

vm10的版本可以支持win7系统,
vm15以上的版本需要win8及win10系统支持。
vm12也可以在win8及win10上安装。

下载VMWare,双击运行,一直 “下一步” 即可(可以改变安装路径)。

2.2 创建虚拟机

第一步:创建虚拟机
VMWare安装使用、Linux命令、Docker安装和Linux项目部署_第1张图片
第二步:安装镜像文件(配置时再选择)
VMWare安装使用、Linux命令、Docker安装和Linux项目部署_第2张图片

第三步:选择操作系统
VMWare安装使用、Linux命令、Docker安装和Linux项目部署_第3张图片

第四步:选择虚拟机的名称和存储位置
VMWare安装使用、Linux命令、Docker安装和Linux项目部署_第4张图片

第五步:全程下一步之后会看到以下界面
VMWare安装使用、Linux命令、Docker安装和Linux项目部署_第5张图片

第六步:配置虚拟机
VMWare安装使用、Linux命令、Docker安装和Linux项目部署_第6张图片

2.3 虚拟机环境配置

第一步:选择install Centos 7
VMWare安装使用、Linux命令、Docker安装和Linux项目部署_第7张图片

第二步:选择语言,建议默认的英文即可
VMWare安装使用、Linux命令、Docker安装和Linux项目部署_第8张图片

第三步:设置密码
VMWare安装使用、Linux命令、Docker安装和Linux项目部署_第9张图片

第四步:重启后输入用户名及密码(root/root)
VMWare安装使用、Linux命令、Docker安装和Linux项目部署_第10张图片

第五步:配置网络环境(让虚拟机可以访问外网)

虚拟机本身也是一个系统,和正常的系统使用方式是一样的,所以也需要进行网络配置。

		# 找到网络配置的文件ifconf-ens33(不同的版本名字可能会不同)
		cd /etc/sysconfig/network-scripts/
		# 查看当前文件夹下所有文件,找到ifconf-ens33
		ls
		# 编辑配置文件vi		查看配置文件cat
		vi ifcfg-ens33
		# 修改配置文件 i进入编辑状态,进行文件编辑
		# 编辑后的文件如下:
		TYPE=Ethernet
		PROXY_METHOD=none
		BROWSER_ONLY=no
		BOOTPROTO=static
		DEFROUTE=yes
		IPV4_FAILURE_FATAL=no
		IPV6INIT=yes
		IPV6_AUTOCONF=yes
		IPV6_DEFROUTE=yes
		IPV6_FAILURE_FATAL=no
		IPV6_ADDR_GEN_MODE=stable-privacy
		NAME=ens33
		UUID=51fff489-cc76-4c5a-88df-12c0fd70fa7e
		DEVICE=ens33
		ONBOOT=yes
		IPADDR=192.168.157.100
		NETMASK=255.255.255.0
		GATEWAY=192.168.157.2
		DNS1=114.114.114.114				
		DNS2=8.8.8.8
		# 注释:	BOOTPROTO改为static,静态获取
		#       ONBOOT:yes
		#		IPADDR:192.168.157.100  IP地址 在VMWare--编辑--虚拟网络编辑器--选择NAT模式--点NAT设置--查看到子网IP(然后自己随意选择一个1-254之间的任意IP地址填入,如:查看的子网IP为192.168.157.0,那么IPADDR=192.168.157.xxx  xxx为1-254容易值)
		#		NETMASK:255.255.255.0 子网掩码
		# 		GATEWAY:192.168.157.2  网关IP  在VMWare--编辑--虚拟网络编辑器--选择NAT模式--点NAT设置--查看到网关IP,填入
		# 		DNS1:114.114.114.114 服务器  用于访问外网的,三大运营商用的就是114.114.114.114或8.8.8.8   这可以填写一个
		
		# 重新加载配置文件,让网络配置生效
		service network restart

第六步:关闭防火墙、连接测试

		# 注意:使用这命令关闭防火墙,只能暂时关闭,若重新启动虚拟机,防火墙需要再次关闭
		# 注意:主机的防火墙也需要关闭
		# 查看当前的防火墙状态
		systemctl status firewalld
		# 关闭防火墙
		systemctl stop firewalld
		
		# 外网访问测试
		ping baidu.com
		# 主机访问测试(主机IP使用ipconfig查看、主机防火墙也需要关闭)
		ping 主机IP

三、Docker安装使用

3.1 什么是虚拟化

在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。

​ 在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用

虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。

3.2 什么是Docker

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。

VMWare安装使用、Linux命令、Docker安装和Linux项目部署_第11张图片

​ Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。

​ Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。

​ 在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

为什么选择Docker?

  • (1)上手快。
    ​ 用户只需要几分钟,就可以把自己的程序“Docker化”。Docker依赖于“写时复制”(copy-on-write)模型,使修改应用程序也非常迅速,可以说达到“随心所致,代码即改”的境界。
    随后,就可以创建容器来运行应用程序了。大多数Docker容器只需要不到1秒中即可启动。由于去除了管理程序的开销,Docker容器拥有很高的性能,同时同一台宿主机中也可以运行更多的容器,使用户尽可能的充分利用系统资源。

  • (2)职责的逻辑分类
    ​ 使用Docker,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如何管理容器。Docker设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署的生产环境一致性。从而降低那种“开发时一切正常,肯定是运维的问题(测试环境都是正常的,上线后出了问题就归结为肯定是运维的问题)”

  • (3)快速高效的开发生命周期
    ​ Docker的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让你的应用程序具备可移植性,易于构建,并易于协作。(通俗一点说,Docker就像一个盒子,里面可以装很多物件,如果需要这些物件的可以直接将该大盒子拿走,而不需要从该盒子中一件件的取。)

  • (4)鼓励使用面向服务的架构
    ​ Docker还鼓励面向服务的体系结构和微服务架构。Docker推荐单个容器只运行一个应用程序或进程,这样就形成了一个分布式的应用程序模型,在这种模型下,应用程序或者服务都可以表示为一系列内部互联的容器,从而使分布式部署应用程序,扩展或调试应用程序都变得非常简单,同时也提高了程序的内省性。(当然,可以在一个容器中运行多个应用程序)

3.3 Docker的安装配置

  • 1、清除掉之前的版本
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  • 2、安装Docker的仓库
# 安装仓库所需要的包
yum install -y yum-utils

# 配置阿里云的docker下载镜像地址
yum-config-manager \
    --add-repo \
	http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 3、安装Docker的引擎
yum install docker-ce docker-ce-cli containerd.io
  • 4、启动Docker服务
# 启动Docker服务
systemctl start docker
  • 5、查看Docker相关的信息
# 查看docker的版本信息
docker version
# 查看docker的系统信息
docker info
  • 6、检验docker是否启动成功(访问默认提供的helloworld文件)
docker run hello-world
  • 7、查看目前已有的镜像(image)
docker images
  • 8、配置阿里云的镜像加速(需要主机登录阿里云找到镜像服务)
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://gbntt4wi.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 常见Docker命令
# 查看当前已有镜像
docker images
# 删除指定镜像
docker rmi 镜像id
# 删除指定容器
docker rm 容器id
# 重启容器
docker restart 容器id
docker start 容器id

# 查看docker进程
docker ps -a
# 关闭进程
docker stop 进程id
# 重启进程
docker restart 进程id
docker start 进程id

四、Linux项目部署

4.1 JDK环境配置

# 将java压缩包上传到指定位置
# 解压
tar -zxvf jdk-8u144-linux-x64.tar.gz
# 编辑 /etc/profile
vi /etc/profile
# 添加JAVA_HOME和PATH
JAVA_HOME=/home/juni/java/jdk1.8.0_144/
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
# 重新加载配置文件
source etc/profile
# 测试:javac   java

4.2 Tomcat环境配置

4.2.1 使用Docker配置Tomcat

  • 1、通过docker下载Tomcat的镜像
# 拉取镜像
docker pull tomcat
  • 2、启动
# 启动
docker run -d -p 9001:8080 --name dockerTomcat tomcat:9.0
  • 3、进入容器中
# 进入指定的容器中
docker exec -i -t 容器名 /bin/bash
  • 4、将web项目的war包复制到webapps目录下(localhost下运行)
# 在容器中运行:
# 更新包管理工具
apt-get update
# 安装vim
apt-get install vim

# 将web项目的war包复制到webapps目录下(localhost下运行)
docker cp 本地文件的路径 容器id或者名:

4.2.2 使用压缩包配置Tomcat

# 上传Tomcat的压缩包
# 解压
tar -zxvf 压缩包
# 配置端口号
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
# 进入bin目录,执行./startip.sh
./startup.sh

4.3 MySQL环境配置

4.3.1 使用Docker配置MySQL

  • 1、下载docker中对应MySQL的镜像
docker pull mysql
  • 2、启动MySQL服务并设置初始化密码
# docker run 运行   --name 给当前的服务起一个名字   -e 环境配置  tag:指定要启动的mysql的版本
docker run --name docker-mysql -e MYSQL_ROOT_PASSWORD=root -d -p 3336:3306 mysql:5.7
  • 3、测试,在宿主机上打开数据库的客户端,输入虚拟机的ip地址,端口号及密码

4.3.2 使用压缩包配置MySQL

  • 1、Centos7自带了maridb的数据库相关文件,所以在安装Mysql之前需要先排查环境
# 查找当前环境中是否已经存在MySQL相关的环境
rpm -qa | grep mysql
  • 2、上传MySQL的压缩包,之后进行解压(根据压缩包选择解压命令)

    解压后可以看到多个.rpm的文件,其中需要安装server及client

# gzip解压 
tar -zxvf 压缩包
# 解压
tar -xvf 压缩包
# z:调用gzip压缩命令进行压缩
# c:打包文件
# v:显示运行过程
# f:指定文件名
# x:解压压缩包
  • 3、安装server

    执行安装命令后,会报错,直接进行下一步进行,无需理会。(错误信息:需要安装perl相关的lib文件)

rpm -ivh MySQL-server-5.6.49-1.el6.x86_64.rpm
  • 4、安装perl相关的lib文件

    安装完成后,执行第三部命令,但执行过程中还会出现报错,无需理会,进行下一步。(错误含义:当前系统中已经存在的mariadb相关的环境,与MySQL冲突了,需要卸载)

# 安装perl相关的lib文件
yum install -y perl*
# 安装server
rpm -ivh MySQL-server-5.6.49-1.el6.x86_64.rpm

# 错误含义:当前系统中已经存在的mariadb相关的环境,与MySQL冲突了,需要卸载。
# 卸载自带的mariadb服务
rpm -e --nodeps mariadb-libs-1:5.5.56-2.el7.x86_64
# 再次安装MySQL服务
rpm -ivh MySQL-server-5.6.49-1.el6.x86_64.rpm 
  • 5、看到下述提示代表MySQL服务安装成功
A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
已为root账户生成了一个随机密码
You will find that password in '/root/.mysql_secret'.
你可以在'/root/.mysql_secret'找到该密码

You must change that password on your first connect,
你必须在第一次连接时修改密码
no other statement but 'SET PASSWORD' will be accepted.
第一行语句输入 'SET PASSWORD'进行密码的修改
See the manual for the semantics of the 'password expired' flag.
  • 6、安装MySQL的客户端
rpm -ivh MySQL-client-5.6.49-1.el6.x86_64.rpm
  • 7、启动MySQL服务
# 查看随机生成的密码
cat /root/.mysql_secret
# 启动MySQL服务
service mysql start
  • 8、设置MySQL密码
# 在查看随机生成的密码
cat /root/.mysql_secret

# 启动MySQL服务之后:service mysql start
# 设置密码,输入上边查看到密码
mysql -u root -p
# 进入mysql命令
输入查看到的密码
# 设置密码
set password=password('root');  
# 授予访问权限,进行远程连接测试(在MySQL环境下操作)
grant all privileges on *.* to 'root' @'%' identified by 'root';
flush privileges;
exit		#退出sql命令
  • 9、开启Linux的3306端口号
# 开启Linux的3306端口号
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
  • 10、重启服务、查看端口是否设置成功
# 重新启动mysql 
service mysql start
# 查看当前开启的端口号
iptables -nL

每日一点点进步
不进则退

你可能感兴趣的:(Part,1,Java入门知识库,linux,docker,vmware)