介绍一下,专业解释请看->https://blog.csdn.net/deng624796905/article/details/86493330,***,一大坨,我不是个有耐心的人,所以就看了一点点,再去问问我认识的这些老头子,交流一下!于是,就我个人而言,docker,就是一个虚拟机。大家平时在使用vm等虚拟机,创建linux系统,然后再在这个系统里边安装各种运行项目所需的环境,最后打包项目,启动项目。docker跟这个大同小异,不知道我的感觉对不对,你可以在虚拟机上创建多个linux系统,创建过程中你需要对其分盘,创建密码等等一些列操作,而docker就是可以创建多个容器。你在你的服务器上需要安装mysql,jdk等环境,同样docker容器也需要!但最关键的区别在于——一台新的服务器,你需要重新安装新的环境,项目也需要重新打包,而docker不用,你可以把之前的容器创建为新的镜像,在新的服务器,安装docker,再运行这个镜像就OK了!
设想,你公司的项目做好了,接下来就是给甲方大大去部署这个项目,而你甲方大大只会给你提供一台服务器,而你去了他们公司,只需要拿着你的镜像,给他服务器安装一个docker,运行就ok了,是不是非常省事呢?哦~具体我也不太清楚,方案b就是,你把你的容器生成镜像后,推送到远端,然后从远端拉取镜像,而这个也绝对是可以实现的,老牛目前应该就是这个设想,把最代码的代码下载改良成为这种,这样牛牛们就可以不用因为环境问题导致下载下来的项目因为环境不一样跑不通,而破口大骂作者的代码有问题了。
好了进入正题——以一个boot项目为列子。
1.将打包好的jar包,上传到服务器下,
2.安装docker,在contos7下,并启动
sudo yum -y install docker-ce
sudo systemctl start docker
3.在刚刚gbq这个文件下,也就是和jar包的相同位置,创建Dockerfile文件,编辑
FROM azul/zulu-openjdk:8 VOLUME /gbq ADD docker_test.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
https://www.dwhd.org/20151202_113538.html?lan=cn&lan=cn Dockerfile详解。
4.生成镜像,注意:空格 . 不可省略
sudo docker build -t springbootdemo .//生成一个叫springbootdemo的镜像 docker images //查看你已有镜像
5.使用容器启动这个镜像
sudo docker run -d -p 8080:8082 springbootdemo // 8080:代理8082 8082:springboot项目端口 docker ps //查看正在运行的容器 docker ps -a //查看所有容器
好了,使用docker启动项目成功。看一下效果,跟linux 后台启动jar包是一个效果
为了更好的查看,我也给大家看一下我服务器的ip(内网,各位访问不了)
项目启动成功了,接下来,我给大家把这个服务器下的运行docker容器,保存为一个新的镜像,再另外一个服务器,启动并且能够访问!
7.先把这个容器停下来
docker stop fe0ca055a52d //后边是你的容器id 通过docker ps查看,如下图
docker commit fe0ca055a52d bootdemo //fe0ca055a52d 容器id bootdemo 新的镜像名称 docker images //查看是否生成了新的镜像,如下图.
docker save -o test.tar bootdemo //test.tar 新生成的文件 bootdemo刚才创建镜像名 ls //可以看到生成了 test.tar文件
10.把test.tar复制到另外一个安装有docker的服务器下,安装过程请参考第2步,如下图
11.加载这个镜像
docker load -i test.tar docker images //查看镜像是否加载成功 如下图
12.运行这个镜像
sudo docker run -d -p 8081:8082 bootdemo // 8081:代理8082 8082:springboot项目端口 docker ps //查看正在运行的容器
至此结束,我也是刚刚研究,所以有大牛觉得不对的地方,请指点!另外还是那句话,有问题群里找我,加我q,都可以。
最后再比比俩句,如果每个牛牛都安装了docker,而下载的代码文章里,都有这个镜像.tar文件,那么牛牛就可以直观的看到这个项目到底能不能正常运行了,运行的效果是什么样,最后再考虑要不要选择下载这个源码,这样就可以防止牛币白白浪费啦!
docker可不仅局限于这个例子哦,它还可以装好多的东西,只是大致就是这么一个流程!
好了,到此结束,拜了个拜!