0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文带你读懂Docker容器 3

jf_78858299 来源:碳峰博客 作者:Tanyongfeng 2023-02-03 15:34 次阅读

七、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-oraclelinux7


MAINTAINER tyf


#RUN yum install redis && yum install mysql


#将当前目录下jar包复制到Docker镜像中
#将需要额外加载的配置文件加入镜像
COPY *.jar /app.jar
COPY *.yml /application.yml


#暴露出的端口
EXPOSE 8079


ENTRYPOINT ["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: 上传至阿里云仓库

这里使用我们上述使用的阿里云镜像仓库和中心仓库,在阿里云镜像仓库创建完成相应的远程仓库后,按照官方操作步骤来完成镜像推送。

  1. 登陆至阿里云 Docker Registry

    docker login --username=谭永锋nb registry.cn-shanghai.aliyuncs.com
    

    图片

    image-20220617201312628

  2. 更改镜像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

  3. 上传镜像

    #docker push registry.cn-shanghai.aliyuncs.com/sleepytans/webapp:[镜像版本号]
    docker push registry.cn-shanghai.aliyuncs.com/sleepytans/webapp:1.0
    

图片

image-20220617201954652

  1. 登陆阿里云查看远程镜像仓库,显示上传成功。
    图片

    image-20220617202025429

Step6:测试部署

网站部署步骤:https://github.com/TanYongF/healthyDay

基本流程:

  • 安装Mysql、Redis
  • 配置项目配置文件
  • 执行下面命令
  • 访问 http://ip:8093
docker 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工程师

参考资料

  1. Docker docs
  2. Docker访问宿主机
  3. Docker基本指令使用.菜鸟教程
  4. Docker入门.Meituan Tech
  5. https://www.xmind.net/m/RHSz/
  6. https://yeasy.gitbook.io/docker_practice/advanced_network
  7. iptables详解
  8. Docker.Wiki百科
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源软件
    +关注

    关注

    0

    文章

    204

    浏览量

    15661
  • 编程
    +关注

    关注

    88

    文章

    3440

    浏览量

    92400
  • Docker
    +关注

    关注

    0

    文章

    437

    浏览量

    11603
收藏 人收藏

    评论

    相关推荐

    一文带你入门Docker容器

    docker不是一个值得投入的领域,它解决的问题是Unix系统最初设计的一个疏忽。从一个不会用docker的小白,自己一步一步的摸索,中间也踩过许多坑。但任然,坚持从哪里跌倒就从哪里爬起来。不求感动自己,但求人生无悔。
    发表于 06-05 14:44 382次阅读
    一文<b class='flag-5'>带你</b>入门<b class='flag-5'>Docker</b><b class='flag-5'>容器</b>

    如何使用 Docker容器化技术

    对于开发人员来说,Docker肯定都不陌生,今天小编带大家重新学习一下Docker。 什么是 Docker 官话: Docker 是一种开源的容器
    的头像 发表于 09-30 11:24 1w次阅读

    读懂电阻和电容的不同

    容器容量为470纳法(nF)或0.47微法(uF),允许偏差±10%.在电路图中,电阻器的欧姆符号Ω和电容量的法拉符号F常可略去不标。 读懂电阻和电容的不同  
    发表于 11-14 10:25

    如何在Docker中创建容器

    Docker个开源的引擎,可以轻松的为任何应用创建个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在
    发表于 01-03 15:58

    理解Docker容器并畅玩docker

    !命令行!玩docker,简单几句命令就够了。Docker容器响应迅速,执行迅速,回忆下VM启动要多久?最佳的试验场所,想怎么玩怎么玩,rm -rf /* 根本不是大问题。主机上删掉
    发表于 11-05 09:54

    读懂接口模块的组合应用有哪些?

    读懂接口模块的组合应用有哪些?
    发表于 05-17 07:15

    读懂什么是NEC协议

    读懂什么是NEC协议?
    发表于 10-15 09:22

    Docker容器管理命令()

    1、Docker容器管理命令的使用方法查看当前主机本地docker镜像:启动容器必须依赖镜像,所以要获取到镜像的唯标识
    发表于 04-20 17:55

    Docker容器管理命令(二)

    1、Docker容器管理命令的使用方法批量删除docker 容器docker cp命令docker
    发表于 04-21 11:31

    使用Docker容器编译OK3568源代码

    rksdkbuilder v1.1 e2fbcddfdb3c12 months ago 1.93GB 启动Docker容器 这里写了个shell脚本,第次使用时可以直接执行,创建
    发表于 10-19 10:36

    一文带你读懂Docker容器 1

    Docker** 是一个开源软件,用于开发应用、交付应用、运行应用。 Docker允许用户将基础设施中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。
    的头像 发表于 02-03 15:33 487次阅读
    一文<b class='flag-5'>带你</b><b class='flag-5'>读懂</b><b class='flag-5'>Docker</b><b class='flag-5'>容器</b> 1

    一文带你读懂Docker容器 2

    Docker** 是一个开源软件,用于开发应用、交付应用、运行应用。 Docker允许用户将基础设施中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。
    的头像 发表于 02-03 15:33 454次阅读
    一文<b class='flag-5'>带你</b><b class='flag-5'>读懂</b><b class='flag-5'>Docker</b><b class='flag-5'>容器</b> 2

    docker容器容器之间通信

    Docker是一种轻量级容器化技术,能够将应用程序及其依赖项封装在一个独立、可移植的容器中。而容器化的应用程序通常是以分布式方式设计的,因此实现容器
    的头像 发表于 11-23 09:36 545次阅读

    docker进入容器的方法有哪些

    Docker是一种流行的容器化平台,它能够快速构建、交付和运行应用程序。在使用Docker时,我们经常需要进入容器进行调试、管理和运行命令等操作。本文将详细介绍
    的头像 发表于 11-23 09:45 3392次阅读

    docker容器有几种状态

    Docker 是一种流行的容器化平台,它能够帮助开发人员将应用程序和其依赖打包成一个独立的容器,并且能够在不同的环境中进行部署和运行。在 Docker 中,
    的头像 发表于 11-23 09:50 825次阅读