coding
最代码人间蒸发的gravatar头像
最代码人间蒸发2019-08-29 16:25:57
docker入门——明明一个开发,却走上了运维的路。

最近没啥事,之前听老牛想搞docker,我也不太明白,这是个啥东西。

介绍一下,专业解释请看->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包,上传到服务器下,

docker入门——明明一个开发,却走上了运维的路。

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包是一个效果

docker入门——明明一个开发,却走上了运维的路。为了更好的查看,我也给大家看一下我服务器的ip(内网,各位访问不了)

docker入门——明明一个开发,却走上了运维的路。

项目启动成功了,接下来,我给大家把这个服务器下的运行docker容器,保存为一个新的镜像,再另外一个服务器,启动并且能够访问!

7.先把这个容器停下来

docker stop fe0ca055a52d  //后边是你的容器id  通过docker ps查看,如下图

 

docker入门——明明一个开发,却走上了运维的路。8.将容器转换为一个新的镜像

docker commit fe0ca055a52d bootdemo  //fe0ca055a52d 容器id  bootdemo 新的镜像名称
docker images //查看是否生成了新的镜像,如下图.

docker入门——明明一个开发,却走上了运维的路。9.把这个镜像保存为一个tar格式文件

docker save -o test.tar bootdemo   //test.tar 新生成的文件  bootdemo刚才创建镜像名
ls   //可以看到生成了 test.tar文件

10.把test.tar复制到另外一个安装有docker的服务器下,安装过程请参考第2步,如下图

docker入门——明明一个开发,却走上了运维的路。

docker入门——明明一个开发,却走上了运维的路。

11.加载这个镜像

docker load -i test.tar
docker images //查看镜像是否加载成功   如下图

docker入门——明明一个开发,却走上了运维的路。

12.运行这个镜像

sudo docker run -d -p 8081:8082 bootdemo  // 8081:代理8082  8082:springboot项目端口
docker ps //查看正在运行的容器

docker入门——明明一个开发,却走上了运维的路。

 

至此结束,我也是刚刚研究,所以有大牛觉得不对的地方,请指点!另外还是那句话,有问题群里找我,加我q,都可以。

最后再比比俩句,如果每个牛牛都安装了docker,而下载的代码文章里,都有这个镜像.tar文件,那么牛牛就可以直观的看到这个项目到底能不能正常运行了,运行的效果是什么样,最后再考虑要不要选择下载这个源码,这样就可以防止牛币白白浪费啦!

docker可不仅局限于这个例子哦,它还可以装好多的东西,只是大致就是这么一个流程!

 

好了,到此结束,拜了个拜!


打赏

已有3人打赏

temptation的gravatar头像每天都要进步的gravatar头像最代码官方的gravatar头像

分享到:

最近浏览
走丢的小怪兽 LV851分钟前
月亮月亮
2012jwy LV71小时前
月亮星星星星星星
nibin576 LV28小时前
星星星星
胖胖来了 LV38小时前
星星星星星星
我去买G橘子 LV4前天
月亮
Johnny_80 LV7前天
月亮星星星星星星
xielxi LV3前天
星星星星星星
jingsen前天
暂无贡献等级
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友