前言:在学习使用Docker中,发现所有Docker案例都是直接就开始下载(pull)镜像然后命令叭叭叭的,对于刚接触linux系统和docker的完全看不懂,所以写了此份教程作为记录。
说明:因查找的资料大部分是Docker在linux中运行,所以本文所有配置都在linux的Ubuntu_64位系统中执行,使用了大量linux命令,如和本人一样未接触过linux系统的,可以先自行安装Ubuntu_64虚拟机并熟悉linux命令,可减少大部分难度,本文不做linux命令讲解。
前期准备:
1、Ubuntu_desktop_64位系统
2、保证网络连接
3、其他访问主机在同一网段
4、修改IP地址为固定IP,不然每次重启电脑IP都有可能会更换
开始前的运行原理说明(此原理非彼原理,不说明实现底层原理,我也不懂,只说明搭建的方式和为什么这样搭建):
docker本质上就是一个工具,我们是在使用这个工具来开启一个虚拟的运行环境,类似与虚拟机,创建一个可运行环境后复制粘贴到处都可运行,而且比虚拟机小,方便。
那么,docker就需要创建它的运行环境,我们把这个运行环境叫做镜像(images),我们会把配置好的运行环境打包成镜像到处发布,但镜像还不是最小的,最小的是容器。
之所以这样划分,个人认为是因为镜像虽然都配置好了,但在不同的电脑还是需要做细微的配置修改,而修改出来的就是容器了,修改错了,再从镜像里拉取一个,这样更安全,更方便。
镜像和容器区分开来了,那就要开始配置适合自己的镜像了,首先确认是在什么环境下的,例如,我要部署的项目以前是在Ubuntu_64位上,那么,直接去下载一个通用的、空的Ubuntu_64位镜像然后把它做成容器运行起来。
要在里面安装tomcat,那么就进入容器里面,输入安装tomcat的命令(后面有安装各种软件的命令,这里就先不将各种安装、执行的命名方法了,具体配置在后面查看),还要安装其他的也是直接输入安装命令就行,和在普通的linux的命令中一样。
我们这里是免安装版,所以直接把下载下来的免安装tomcat发送到docker容器里面,然后配置一个启动运行文件(root.sh),每次运行此容器时自动后台执行tomcat的运行文件,其他免安装版软件也是同理
然后mysql我是单独拿了出来,两个原因,1、在同一容器,程序和其它软件易造成数据库异常(就算几率很小或没有,也要先做预防),2、方便直接和宿主机(安装docker的服务器)直接进行文件挂载(宿主机文件和docker容器文件同步),避免docker的mysql容器损坏,无法启动的情况下,至少数据还都保存在宿主机下,宿主机再挂了就没办法了,再拿个服务器做冷/热备份吧。
我这里mysql是直接下载的mysql5.7版本镜像,想自己下载空系统再自己安装数据库也行,不过常用的这些镜像很多,直接拿来用就好了。
之后也是吧mysql镜像当容器运行起来,进入容器进行配置,什么远程权限啊、什么初始化数据啊、什么创建用户啊,也是和普通linux系统下操作一样。
两容器运行成功就是在打包成镜像文件,导出,需要再部署的时候直接把这写导出的镜像导入,使用容器执行镜像,配置下容器的IP什么的就OK了。
这是整体思路,想全部都放在一个镜像(或容器)里,可以,但没什么必要,所以常规做法就是一个容器管一个软件,刚查资料时我就是以为全部放到一个镜像中,但资料和教程全是多个的,而且只知道下镜像运行,下镜像运行,为什么要下,怎么执行成功的全不讲,简直了。
注:常用命令汇总(以下所有命令都在管理员账号(root)执行,不要在普通用户或docker容器内执行)&#x