摘要
本篇博客主要介绍Docker的基本概念和简单使用内容包括:
1 Linux安装docker,以及配置;
2 IDEA插件界面化操作docker完成镜像的拉取,容器的创建;
3 配置mysql镜像的自启;
4 最后通过一个简单的Springboot项目简单演示docker完成项目的发布和部署等
概念:
Docker 是一个开源的应用容器引擎 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。(简单理解:他就是一个对你的工具进行归类的箱子,每一种工具都可以放在不同的箱子里面,对其进行归类.我们的jar包,mysql,redis等等都可以看作一种工具,我们都可以使用docker容器对其进行封装)
作用:
在docker的概念里有几个关键词很重要:容器 轻量级 可移植
这几个关键字第一个就不必介绍了,轻量级也很好理解,最关键的就是 可移植 这一点很重要,它可以让我们后期维护成本降到一个很低的层次,举个例子,公司在A服务器上上线了一款应用,A服务器上有我们应用需要的全部环境(jdk 、DB、redis、等等一系列东西),这时候公司又买了一台B服务器,需要你讲A服务器上所有的东西原封不动的搬到B服务器上做一个升级或者备份。这时候如果你没有使用docker可想而知,你需要的维护成本有多高,就和你装系统一样,你想要你新买的电脑系统和原来旧电脑一样,可想而知有多麻烦。
但是如果你一开始使用的就是docker那你的工作就会相当轻松了,你只需要把你应用需要的容器拉取下来,在另一台服务器上也装一个docker直接运行你的镜像即可。这就是可移植性的好处。
docker 是基于linux的运行的,所以我们一般会将docker安装到linux服务器上,如果window等系统想要安装docker需要安装linux系统的虚拟机才能安装docker.
1.2.1 CentOS安装docker
这里以centos7为例来演示docker的安装,其实安装很简单,网上资料也一大堆
我喜欢使用一键安装的方式
首先:更新一下yum源
如果你之前安装过docker 请先卸载
如果你之前没有安装过docker直接使用如下命令即可,我这里因为已经删除过了所以没有匹配
安装docker
docker 是否安装成功前期需要建的命令验证一下
启动docker,查看镜像,查看容器,拉取hello-world镜像并运行
很显然我们不能每次重启服务器的时候就去重新启动docker服务,我们来配置一下docker自启
IDEA安装docker插件
开放和放行2375端口(2375是docker的默认端口)不开放无法使用插件完成docker的远程连接
注意:
如果上述配置都已经尝试过idea插件还是不能连接docker请 重启服务器
没错,就是重启服务器,简单粗暴的方式往往最有效.但是如果生产环境就需要考虑了,不要轻易重启哦!!!
再次连接 成功
我们使用插件简单操作一下docker
1.6.1 配置国内镜像源
docker的官方镜像源很慢,我们可以使用我们国内的加速镜像源
目前市面上有网易,中科大,阿里的加速镜像源,你可以选择配置多个
阿里的需要我们去阿里云控制台申请申请完毕之后可以在插件中配置,这里不再多说了,喜欢的用的可以自行百度.
1.6.2拉取mysql镜像并创建启动容器
拉取镜像mysql5.7.10
创建容器并启动
基本的操作和配置已经完成,接下来我们使用IDEA来完成一个springboot项目的创建、打包、docker发布等操作
1.7.1 创建Springboot项目
IDEA创建springboot项目很简单,这里 就不再详细介绍了我直接列出配置即可
启动验证项目是否正常
1.7.2 编写Dcokerfile
在我们的srcmian 目录下创建一个目录命名为docker,方便后期管理
然后创建一个名为Dockerfile的文件
编写如下执行命令
1.7.3 在pom.xml中添加如下配置
1.7.4 创建Dockerfile运行配置
使用idea创建运行配置
执行pagage命令,效果如下
执行我们创建的demo运行配置
打印日志正常,项目已经在docker启动,我们访问一下我们的服务器地址看一下效果是不是和我们在本地运行那个的结果一样
其实截止到1.7章节位置我们已经已经大致完成了我们想要的效果,这样我们在前后端分离的情况下,前端就可以直接连接我们服务器上的项目进行接口对接,如果出现问题,我们本地修改之后,直接重新打包然后运行dockerfile运行配置重新上线,回滚上线方便快捷,非常简单。
那么问题来了,如果我docker服务重启了,我们之前创建并运行的容器是不是就挂了?当然。所以我们可以设置容器为自启,即使我们重启了docker服务,我们之前创建的容器也能自己启动。
1.8.1 创建容器之后设置自启
我喜欢在容器创建之后设置它自启,网上也有在创建容器的时候就指定它自启的,这里就不再演示,我们只演示创建之后设置自启
重启一下docker服务查看是不是我们想要的结果(以mysql为例子,我已经执行了上面命令)所以直接重启docker服务看一看是不是还能连接上mysql就行了
同样我们可以在为我们的springboot项目创建容器之后设置自启,过程一样
这里就不再演示。
本次就是一个简单的小记录,对于我来说就是为了熟悉IDEA的docker插件。当然对欲运维人员来说这个教程简直不能再简单了,运维人员对docker的熟练程度绝对要比开发者熟悉得多,所以本篇笔记只适合开发者简单使用,本次demo中部署的是一个单体应用,如果是微服务的话这一套还远远不够,我们还要进一步学习Docker Compose 以及 k8s 等运维工具。
参考链接:
docker菜鸟教程: https://www.runoob.com/docker/docker-tutorial.html
docker配置加速镜像源:https://www.cnblogs.com/cao-lei/p/14448052.html
演示项目代码:https://github.com/mrkay001/docker-demo/
CentOS-7虚拟机:链接: https://pan.baidu.com/s/1xKpbvO9NVx6zwCTWMmO2Vg 提取码: ufwn
账号:root