一文带你读懂Docker容器 3

七、docker实战这里我使用之前的软件实践项目来进行docker从构建到部署一整套实验。
step1:maven打包进入项目目录,在terminal运行maven命令,通过maven构建springboot web项目,将其打成jar包。
mvn package -dmaven.test.skip=true
image-20220616094117236
发现项目目录下生成了一个可执行jar包,这里我们可以通过jar包来测试。
step2:上传jar包将jar包通过ftp工具上传到服务器~/healthysystem目录下
step3 :编写dockerfile~/healthysystem目录下,使用vim dockerfile创建一个dockerfile文件,然后在文件编辑如下内容:
#根据java15为基础镜像from openjdk:11.0.15-oraclelinux7maintainer tyf#run yum install redis && yum install mysql#将当前目录下jar包复制到docker镜像中#将需要额外加载的配置文件加入镜像copy *.jar /app.jarcopy *.yml /application.yml#暴露出的端口expose 8079entrypoint [java, -jar, /app.jar ~修改完毕后,保存退出。
step4:构建docker镜像在~/healthysystem目录下执行:
docker build -t healthy:1.0 .
结果显示successfully built ......,构建images成功
step5: 测试镜像docker run --name healthy --network host healthy:1.0 #执行新实例
image-20220617195045392
执行docker ps查看容器状态
image-20220617195129284
打开服务器防火墙,访问http://81.68.239.206:8093/welcome.htm,正常启动。
image-20220617195245538
step5: 上传至阿里云仓库这里使用我们上述使用的阿里云镜像仓库和中心仓库,在阿里云镜像仓库创建完成相应的远程仓库后,按照官方操作步骤来完成镜像推送。
登陆至阿里云 docker registry
docker login --username=谭永锋nb registry.cn-shanghai.aliyuncs.com
image-20220617201312628
更改镜像tag
#docker tag [imageid] registry.cn-shanghai.aliyuncs.com/sleepytans/webapp:[镜像版本号]docker tag 9e78dbdd6dd8 registry.cn-shanghai.aliyuncs.com/sleepytans/webapp:1.0
image-20220617201707730
上传镜像
#docker push registry.cn-shanghai.aliyuncs.com/sleepytans/webapp:[镜像版本号]docker push registry.cn-shanghai.aliyuncs.com/sleepytans/webapp:1.0
image-20220617201954652
登陆阿里云查看远程镜像仓库,显示上传成功。
image-20220617202025429
step6:测试部署网站部署步骤:https://github.com/tanyongf/healthyday
基本流程:
安装mysql、redis配置项目配置文件执行下面命令访问 http://ip:8093docker run --name healthy --network host registry.cn-shanghai.aliyuncs.com/sleepytans/webapp:1.0八、实验总结本次大作业通过学习docker基本安装、数据管理、网络等基础知识,对docker的诞生由来以及解决了多依赖项目部署复杂的问题,同时针对特定内容对docker例如网络模式,其基于底层隔离和资源限制的基础——cgroup以及namespace技术有了一定的理解。
同时又对之前的软件实习项目的部署引入docker进行改造,通过编写dockerfile以及docker-compose文件构建出了项目对应的镜像并且上既然到了云端,从实践方面体会到了docker对实际项目运维部署方面带来的巨大便捷。
由于自身的学习方向是java后端方向,对于现在接触比较多的微服务、集群来讲,docker等云原生工具大大降低配置部署难度,同时也让我对devops开发流程的理解逐渐加深,也促使我将将传统的开发思想逐渐转变成容器化思想。但是鉴于时间紧迫,对docker底层原理的细节了解还不是很充分,同时对于业界比较流行的kubernetes(k8s)等docker容器编排工具还没有具体的体验学习,但是学无止境,未来我也会继续加深对其中云原生技术的深入学习,努力将自己打造成为新一代devops工程师。
参考资料docker docsdocker访问宿主机docker基本指令使用.菜鸟教程docker入门.meituan techhttps://www.xmind.net/m/rhsz/https://yeasy.gitbook.io/docker_practice/advanced_networkiptables详解docker.wiki百科

哪些配置最影响工控机的运行速度
看里约奥运运动员如何利用可穿戴设备提高竞技能力
光纤光栅传感器的优点
骁龙855人工智能芯片让手机AI触手可及
硬件电路电压变换——24V转12V应用电路
一文带你读懂Docker容器 3
张鑫:智能交互成显示产业重要发展趋势
冷/热饮水机电路原理与维修,water dispenser schematic and fixing
未来云计算的发展趋势如何
过采样:提高ADC信噪比巧妙方法
什么是区块链不变性
基于通用接口总线和工控机实现无线电信号监测系统的设计
MDO-2000E系列多功能混合示波器的性能特点及应用范围
32位单片机C语言编程:基于PIC32
四气两尘监测站是什么,它的技术特点是什么
研究发现 未来将会看到人工智能驱动的网络攻击的部署
机器人和变位机怎么协调运行
如何规划机器人的运动方式至关重要
松下与保时捷设计强强联手,打造高端家电,助力洗衣机迎来焕新时代
PCB板上的字母数字是什么意思?