官方定义:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
为了能更加简介名了的了解Docker,这里我拿部署一个项目不使用Docker和使用Docker的流程来体现出Docker的功能。
1、不使用Docker部署一个JE22项目到云服务器
大家平时比编程大多还是使用windows系统,但是企业中服务器一般还是使用Linux,所以我这里就用把一个JE22项目部署到Linux云服务器为例进行介绍:
1、购买Linux的云服务器,目前有很多可选,阿里云、腾讯云等。。。等,并安装FTP
2、在购买的云服务器里面部署好JAVA环境(jdk,jre,环境变量。。等等)
3、安装数据库,配置数据库
4、安装TOMCAT并配置
5、开放tomcat和系统相关端口
6、上传jar包或者war包(jar包的话不需要tomcat)
7、导入建库SQL语句
8、启动jar包或者通过启动tomcat启动war包
这么一系列的动作,才可以使用起来!原因只有一个,一台新的服务器上面没有运行相关项目的环境,得自己搭建这个环境才行。这个搭建环境的过程是如此之长, 不仅耗时耗力,而且只要有一步忘记了,或者做错了,都会卡在那里做不下去,无法得到最后想要的效果了。所以才催生了容器的存在,下面我们来看一下如果使用容器Docker部署项目的流程:
2、使用Docker部署一个JE22项目到云服务器
1、购买Linux云服务器,这是必不可少的
2、安装Docker,在Docker里面装个小的操作系统Linux
3、把上面不使用Docker过程中8个步骤放到Docker里面
4、把 Docker 里面这个,已经有环境,已经装好了J2EE应用,已经确保可以用的 "Linux 操作系统” 整个儿扔给用户,
这就是 Docker ~简洁了用户部署的内容。
总而言之,使用Docker可以使用户非常简单的就可以配置好你给他的系统,避免了繁琐的环境配置!所以让我们学习使用Docker来部署我们的系统吧!
安装 Linux 虚拟机
一般大家都是没有自己的Linux服务器的,这里我们采用在自己的windows版电脑中安装一个Linux虚拟机来满足我们的需要。这里我们通过 VMWare 虚拟机 安装 Linux。首先,我们来了解一下什么是虚拟机。虚拟机,其本质其实也是一个程序。 但是这个程序,模仿了一台完整的主机,一旦进入了这个程序,就放佛进入了另一台独立的电脑似的。 这个“独立的电脑” 有其CPU,内存,硬盘,网络,ip地址等等 独立的资源。 这个所谓的 “独立的电脑” 就是虚拟机。在这个虚拟机里安装一个Linux 操作系统,与我们花钱在 阿里云上买的 Linux 操作系统的使用,是一样的,所以通过在 虚拟机里的Linux ,我们就可以很好地锻炼自己的 Linux 操作技巧,等在真正的 Linux 操作系统上撸的时候,就得心应手了!
如果你的电脑是win10系统的,那么自带了个虚拟机叫做 Hiper-V. 在安装 VMWare前要把他关闭了,否则会和VMWare有冲突。这里介绍一个快速关闭Hiper-V的方法。打开控制面板然后点击程序如下图:
然后点击 启用或关闭windows功能按钮,找到Hiper-V选项,如果其处于选中状态,把勾选去掉,然后点确认。
下面我们要开始安装虚拟机了!
1、VMWare 安装程序
vmware 官网地址
https://www.vmware.com/
虽然官网地址在这里,但是大家从官网里面下载要找对地方,为了防止大家下载不到,这里我把我下载好的VmWare放到我的网盘里面了,大家可以通过下面的连接进行下载:
链接:https://pan.baidu.com/s/1TK3WHXhljpnZDbUVma0lOA
提取码:hidb
下载完后,我们就开始安装就可以,傻瓜式的安装,在此不再赘述。安装完后,我们打开vmware,如果看到下面这个界面,就表示已经安装好啦。
下面我们要在这个虚拟机中安装 Linux操作系统!
2、安装Linux操作系统
Linux 有收费的 红帽: Red Hat
免费的常见的有: Ubuntu,CentOS,Debian 。
他们区别大概是:
Ubuntu 界面好看
CentOS 文档丰富
Debian 稳定性强
这里我们使用的是企业中比较常用的CentOS。下面我们就来下载CentOS 镜像,vmware中安装操作系统,用的是安装镜像的办法。 CentOS的镜像地址如下:
http://mirrors.cqu.edu.cn/CentOS/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso
这个镜像大约4个G,大家慢慢下载就行。
3、创建新的虚拟机
客户机操作系统选择: Linux(L)
版本选择: CentOS 7 64 位:
使用默认的20G.
默认的 将虚拟磁盘拆分成多个文件
点击自定义硬件:
内存设为2GB,不然太卡了:
使用默认的1个处理器,1核就行了。
不过: 虚拟化 Intel VT-x/EPT 或者 AMD-V/RVI(V) 必须勾上
使用默认的 NAT 模式,点击确认
最后点击完成即可。
4、开启虚拟机
左边选中文,右边选 简体中文,然后点继续
到这里后,用鼠标,往下面滚动。 鼠标会有点生硬,要使劲滚。
有两个需要配置
1. 安装位置
2. 网络和主机名
点击安装位置
进来后,什么都别动。。。 点击完成
自动退回来后,就看到 安装位置那里不是红的了。
然后点击网络和主机名
右上角,点成打开,然后点击完成
然后点击开始安装:
然后就开始安装了,这期间可以点击 ROOT 密码进行密码设置
设置密码:******
后面链接要用这个密码。
然后就在这个界面等一下安装吧。
安装好点击重启即可!
重启后,就出现重启界面:
登陆账号是: root
密码是你自己设置的密码。
登录成功后,就正常使用了!
这里要提醒大家的是linux系统在输入密码时是没有任何输入提示的,你只管输入就行了,输完直接enter!
然后我们来看一下我们的IP地址:
执行命令:ip address
然后我们就知道虚拟机网卡 ens33对应的地址了:
192.168.254.128
每个人的都不一样,你的是你的,我的是我的。
这样我们的虚拟机就安装上Linux操作系统了!
5、SSH 客户端链接示例
有了ip地址,有了账号密码,就可以通过SSH客户端链接了。
通过上面的课程就搭建了Linux的服务器,接下来就要到这个服务器上去进行一系列的操作了。 但是服务器所处于的位置在我们的虚拟机里面,包括后面我们可能购买一些云服务器,这些云Linux的服务器基本都在厂家那里。我们一般不大可能到现场去进行操作,那么怎么办呢?
那就要借助客户端工具来链接到Linux服务器上进行相关操作了,客户端工具有很多种,这里采用个人比较熟悉的securityCRT。
为了方便大家学习,我已经下载好并且放到百度云网盘了,大家可以自行下载,链接如下:
链接:https://pan.baidu.com/s/1OfeQPvU59MCEkcUUwMF5aA
提取码:uirg
直接运行就可以。
第一次打开之后,就会看到如图所示的效果。
然后我们来看一下如何使用这个工具链接到我们的Linux服务器:
Protocol :使用默认的SSH2
Hostname: 使用虚拟机中的IP,后期如果大家购买了云服务器,这里可以输入你的云服务器IP,我的是本地虚拟机IP是:192.168.254.128,你们要根据自己的服务器进行调整。
Port: 使用默认的22.
Username: 使用root
这里询问是否保存主机信息,点击 Accept & Save
这里要输入密码。
如图所示,链接成功之后是这样的效果
再输入 :ip address命令进行测试如下:
这样,我们就用 ssh 客户端链接上Linux服务器了!
6、Linux防火墙设置
CentOS 上通过 firewall 来进行防火墙的工作。
防火墙的工作简单说,就是运行那些端口开放给访问者用,哪些不开放~这在我们系统开发中也很实用
以通过命令安装防火墙:yum -y install firewalld firewall-config
1、为了启动防火墙,要先重启下 dbus
systemctl restart dbus
然后通过如下命令进行防火墙生命周期管理
启动一个服务:
systemctl start firewalld.service
关闭一个服务:
systemctl stop firewalld.service
重启一个服务:
systemctl restart firewalld.service
显示一个服务的状态:
systemctl status firewalld.service
在开机时启用一个服务:
systemctl enable firewalld.service
在开机时禁用一个服务:
systemctl disable firewalld.service
查看服务是否开机启动:
systemctl is-enabled firewalld.service
查看已启动的服务列表:
systemctl list-unit-files|grep enabled
查看启动失败的服务列表:
systemctl --failed
下面我们再来看一下防火墙的一些配置
查看版本:
firewall-cmd --version
查看帮助:
firewall-cmd --help
显示状态:
firewall-cmd --state
查看所有打开的端口:
firewall-cmd --zone=public --list-ports
更新防火墙规则:
firewall-cmd --reload
查看区域信息:
firewall-cmd --get-active-zones
查看指定接口所属区域:
firewall-cmd --get-zone-of-interface=eth0
拒绝所有包,测试别用这个。不如然只有到VMWare 的终端上去关闭防火墙 SSH 客户端,稍显麻烦:
firewall-cmd --panic-on
取消拒绝状态:
firewall-cmd --panic-off
查看是否拒绝:
firewall-cmd --query-panic
那怎么开启一个端口呢
添加
注1:--permanent永久生效,没有此参数重启后失效
注2:增加了要用 firewall-cmd --reload,才会生效
firewall-cmd --zone=public --add-port=80/tcp --permanent
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=80/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent
这样我们把常用的防火墙命令也介绍完了!
7、Linux常用工具
刚装的 CentOS , 有些工具有,有些没有,所以我会习惯性地装如下工具
yum install iproute ftp bind-utils net-tools wget -y
其中:
iproute 用来执行 ip address 查看本机地址
ftp 用来测试ftp 服务器
bind_utils 用来运行 nslookup
net-tools 用来执行 netstate
wget 既是执行 wget的
这些工具都是比较常见的,尤其在检验某个服务是否正常工作的时候,会起到很好的作用
安装好以后我们来看一下:
ip address
ftp
显示拒绝链接,当然,现在没有ftp 服务器,会显示拒绝链接。
通过输入 bye 退出
nslookup
nslookup www.baidu.com
可以看到,域名服务器是 192.168.254.2. 而 192.168.254.2 就是宿主机的地址。
netstat
netstat -anp|grep 8080
用于查看某个端口是否开放
wget
wget http://www.baidu.com
获取网络资源
本节内容就先暂时到这儿!
这一节,我们了解了Docker的作用,然后为了在Linux里面部署Docker,我们在本机通过VMWare新建了一个Linux虚拟机,并初识了一些Linux的命令!
下一节,我们将一起学习如何在我们建好的Linux系统中安装Docker,加油!