docker:通俗来说,就是类似于虚拟机的运行原理,寄宿在主机上运行。而在docker容器里面运行的各种容器,类似于安装window系统需要的镜像,当一个系统安装纯净版时,什么都没有,啥驱动和软件都要自己亲自去安装,这时候的就有了镜像,人们把自己安装配置好软件的系统打包,提供给被别人安装,当别人安装了这个系统时,就不用自己安装驱动,同时也会有一些别的软件。而docker就是参照这个原理,将安装时要手动配置的步骤打包成docker,供别人pull,当别人将这个软件pull到自己主机时,配置就不用自己手动添加了,达到一键安装的效果。
结构图:
运行各种镜像产生的容器 Mysql容器 Tomcat容器 Redis容器等 |
Docker容器 |
Linux(主机) |
Linux系统:Centos7.3(可以用自己搭建的虚拟机,也可租云服务器)
工具:
SmarTTY(或Xshell):用做远程连接Linux系统
Xftp:用做与Linux系统传输文件
所需的软件:
Xftp连接到centos系统后,在/usr/目录下新建java,其子目录下创建jdk和tomcat文件夹,用来放置jdk和tomcat
用Xftp传输两个压缩包到相关的目录下,进入文件夹,进行解压
解压命令:
#tar -xvf jdk-8u191-linux-x64.tar.gz
#tar -xvf apache-tomcat-7.0.91.tar.gz
执行结果:
配置jdk环境变量
方法一:
打开编辑文件:
#vi /etc/profile
在任意位置添加以下配置:
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_191
export JRE_HOME=/usr/java/jdk/jdk1.8.0_191/jre
export CLASSPATH=.:$JAVA_HOME/lib$:JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin/$JAVA_HOME:$PATH
编辑完内容后,按下Esc键,并输入“:wq”,然后回车可以保存退出。
使配置文件生效:
#source /etc/profile
验证jdk环境:
# java -version
方法二:
利用Xftp可视化窗口直接打开profile文件编辑
去到相应文件夹下开启tomcat服务
# ./startup.sh
阿里云服务器是默认关闭防火墙的
# firewall-cmd --state
为了安全需要开启防火墙的话,添加相关的出站规则即可,查看端口状态
# netstat -lnp
访问项目:
传输war包到tomcat下的webapps目录下,然后访问项目
但是,这时候是访问不到项目的,因为阿里云服务器设置了双重防火墙,还要去控制台开启相关端口的出站规则
首先检查linux是否支持docker,内核版本3.10以上才支持
# uname -r
安装docker
# yum install docker
开启docker服务
# systemctl start docker
开启docker自启动
# systemctl enable docker
利用docker搜索mysql
# docker search mysql
相当于在网站https://hub.docker.com上面搜索
进入一个mysql,里面有各种版本,默认下载的是最新版本
下载mysql5.7版本
# docker pull mysql:5.7
启动容器,第一次启动需要根据镜像来启动容器
# docker run --name mysql -d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.7
--name 自定义容器名字:容器名字
-d:在后台运行
-e MYSQL_ROOT_PASSWORD=数据库密码:设置mysql密码,启动其他容器时不用加这个参数
-p 3306:3306:端口映射,容器端口映射到主机端口,因为外部是不能访问到容器端口的,如果是tomcat,则要映射8080端口
mysql:5.7:拉取的镜像名称
还有一些常用的docker命令
容器:
# docker ps:查看运行中的容器
# docker ps -a:查看所有的容器
# docker stop 容器id:停止运行中的容器
# docker start 容器id:启动容器(第二次启动用这个)
# docker rm 容器id:删除容器
镜像:
# docker images:镜像的列表
# docker rmi 镜像id:删除镜像
不要混淆了镜像和容器的概念,容器是通过运行镜像来产生的
看到这里,大家是不是有疑问了?很正常
疑问一:为什么不用docker方式安装tomcat?
因为通过docker安装的软件,不能通过Xftp直接可视化部署项目,只能通过命令来进入docker版的tomcat,对于部署项目就有点不方便了
对tomcat的相关操作(图转载自网络,侵权可告知删博):
疑问二:为什么要用docker方式安装mysql?
直接安装mysql的话,还需要自己设置相关的设置,有点麻烦,docker的一键安装比较方便,docker还可以安装其他的软件,例如redis、mongodb等众多软件,用起来也方便,当然,也可以自己定义docker,用自己配置好的docker容器,这部分这里没有介绍到,有兴趣的可以去了解下。
总结:各种技术层出不穷,学会如何高效的应用到开发当中才是最重要的。