打包springboot项目为docker镜像并发布到docker本地仓库私服+运行项目镜像

前言

在使用docker toolbox前,自己在VM、VB上安装CentOS7玩了一下docker,感觉启动虚拟机太麻烦于是就想能不能在win10上直接安装docker呢!得知docker依赖linux虚拟机内核,顿时泼我了一脸冷水,不过查阅资料可以利用docker toolbox做到,于是有了以下的踩坑之旅,特此纪念。

1、安装docker-toolbox

安装比较简单 请参考 https://www.runoob.com/docker/windows-docker-install.html

docker-toolbox (首选)、Docker for Windows 二选其一(一开始两个都装了,一大堆bug,我用的是dockertoolbox。Docker for Windows慢得出奇),具体原因参考 https://blog.csdn.net/zhang197093/article/details/78643708

安装过git的童鞋,docker Quickstart Terminal可能运行不了,提示需要指定bash.exe,请将下方的git路径替换为自己的安装路径即可
在这里插入图片描述
配置好后双击docker Quickstart terminal 、需要点时间耐心等待。(请注意联网,不然会一直卡在waiting for an IP)出现以下图标表示安装成功、现在可以尽情的在Windows玩耍docker命令了,have fun!
在这里插入图片描述

docker 加速器配置(参考:https://www.cnblogs.com/studyzy/p/6113221.html)

sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速器地址 |g" /var/lib/boot2docker/profile

1、进入docker所在虚拟机: docker-machine ssh default

2、以下是三个加速器地址:(获取加速器地址可参考 https://www.cnblogs.com/anliven/p/6217418.html)

sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=http://f1361db2.m.daocloud.io |g"    /var/lib/boot2docker/profile
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=http://hub-mirror.c.163.com |g" /var/lib/boot2docker/profile 
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=http://f2d6cb40.m.daocloud.io |g" /var/lib/boot2docker/profile

3、退出docker所在虚拟机:exit

4、重启:docker-machine restart default

5、 查看docker 信息:docker info
在这里插入图片描述
加速器配置成功!!!(重启电脑后配置会失效,难受!!!求永久配置方法!!)

创建自己的docker镜像仓库私服(参考: https://blog.csdn.net/tastelife/article/details/90166473 如有报错请按照下面的方式来)

创建文件夹 D:/docker/jx-mysql/
docker run --restart=always --name jx-mysql -p 3306:3306 -v /D/docker/jx-mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.26

进入mysql容器(可略过)
docker exec -i -t  jx-mysql /bin/bash   mysql -u root -p

私有仓库 registry
docker run -d -p 5000:5000 --restart=always --privileged=true --name=jx-registry -v /D/docker/jx-registry:/var/lib/registry  registry

改镜像名mysql 7faa3c53e6d6 IMAGE ID(因为要改仓库名字)

docker tag 7faa3c53e6d6 localhost:5000/mysql:5.7.26
docker push localhost:5000/mysql:5.7.26

查看仓库的镜像: http://192.168.99.100:5000/v2/_catalog ;仓库仓库某个镜像的版本信息:http://192.168.99.100:5000/v2/mysql/tags/list192.168.99.100是我的DOCKER_HOST请改为自己的)
在这里插入图片描述
在这里插入图片描述

删除localhost:5000/mysql:5.7.26后 重新从本地私服拉取

1、docker rmi localhost:5000/mysql:5.7.26 ;2、查看:docker images ,确实已删除。

在这里插入图片描述

1、docker pull localhost:5000/mysql:5.7.26 ;2、查看:docker images ,拉取成功!

在这里插入图片描述
重命名localhost:5000/mysql再将其删除 : (图就不贴了)
docker tag a1aa4f76fab9 mysql:5.7.26、docker rmi localhost:5000/mysql:5.7.26

**

2、创建springboot工程

历经重重磨难,终于把docker玩了个遍,遇到各种问题,查询资料不断尝试,终于到了将代码打包部署了,继续踩坑的节奏。不过皇天不负有心人终于摸索出来了,小小的一个hello SpringBoot_docker忙活了大半夜,话不多说先附上成功的截图:
在这里插入图片描述
在这里插入图片描述
参考博文与代码:https://blog.csdn.net/anxpp/article/details/73478883

按照博主的步骤一路往下开车,由于自己水平有限踩坑了!!以下坑深地固(坑深5米啊,开个玩笑哈哈!!)以下是eclipse构建镜像报错:

[1B[1A[2K
37c42f367660: Retrying in 1 second 
[0B[2A[2K
3651dac5ddfb: Retrying in 1 second 
[1B[1A[2K
37c42f367660: Downloading 
[0B[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:40.294s
[INFO] Finished at: Fri Jul 05 20:45:59 CST 2019
[INFO] Final Memory: 33M/224M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default-cli) on project docker: Exception caught: **pull access denied for frolvlad/alpine-oraclejdk8, repository does not exist or may require 'docker login**' -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
ERROR http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

加粗字体是重点以,还以为是没有登录(require ‘docker login’),于是前往https://hub.docker.com/signup注册账号登录本地也登陆还是没用啊!气氛越发紧张,看看表几点了都。
在这里插入图片描述
继续查询资料说把Dockerfile里的配置 FROM frolvlad/alpine-oraclejdk8 改成FROM frolvlad/alpine-oraclejdk8:slim或FROM frolvlad/alpine-oraclejdk8-temporary就可以了,试了一个遍没用,捉鸡啊!

于是自行百度Dockerfile参数的含义得知 FROM frolvlad/alpine-oraclejdk8含义是:项目是以frolvlad/alpine-oraclejdk8为基础镜像的。于是怀疑是不是该镜像不存在(repository does not exist) 执行docker search frolvlad/alpine-oraclejdk8 果然不存在,于是执行docker search jdk8获取基础镜像(自己选择从列表中一个就行)。说干就干,将Dockerfile种的FROM frolvlad/alpine-oraclejdk8改成 FROM abrtech/alpine-oraclejdk8继续构建镜像成功如图,Congratulations!干杯。
在这里插入图片描述
在这里插入图片描述
运行命令:docker run -d -p 8080:8080 --restart=always --name=dockerdemo docker-demo
在这里插入图片描述
命令参数解释
-d 后台运行
-p 指定端口映射(-p 宿主机端口:容器端口)
–restart=always (dokcer启动,该容器自启动,类似开机启动)
–name 指定容器名称

	查看项目镜像是否正常运行:http://192.168.99.100:8080/    图上面已贴,这里就不多此一举了。

至此以迈向了springBoot+docker开发部署的第一步,请大家多多指教,欢迎提供该方面的学习资料,避免一路踩深坑。
第一次写博文不熟练,欢迎斧正,谢谢!

感谢文中所参考的博文作者!! 如有侵权请告知删除。

后语

”长路漫漫,不如沿途作伴。慌时交流技术,闲来喝酒聊天,亦可告慰it路之艰辛。“-----Zcat1024

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值