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

    文章

    210

    浏览量

    15900
  • 编程
    +关注

    关注

    88

    文章

    3614

    浏览量

    93686
  • Docker
    +关注

    关注

    0

    文章

    457

    浏览量

    11846
收藏 人收藏

    评论

    相关推荐

    带你搞懂Docker容器的核心基石Cgroups

    可以限制、记录任务组所使用的物理组员(比如 CPU、Memory、IO等),为容器实现虚拟化提供了基本保证,是构建 Docker些列虚拟化管理工具的基石。今天我们就来详细介绍
    发表于 11-24 09:54 598次阅读

    带你入门Docker容器

    docker不是个值得投入的领域,它解决的问题是Unix系统最初设计的个疏忽。从个不会用docker的小白,自己
    发表于 06-05 14:44 533次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><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 1.6w次阅读

    ARM平台实现Docker容器技术

    本帖最后由 Tronlong创龙科技 于 2024-7-19 16:50 编辑 什么是Docker? (1)Docker的架构Docker个开源的应用
    发表于 07-17 11:05

    如何在Docker中创建容器

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

    理解Docker容器并畅玩docker

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

    读懂什么是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

    带你读懂耦合与退耦,上拉与下拉资料下载

    电子发烧友网为你提供带你读懂耦合与退耦,上拉与下拉资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮
    发表于 04-21 08:50 23次下载
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>带你</b><b class='flag-5'>读懂</b>耦合与退耦,上拉与下拉资料下载

    带你读懂Docker容器 1

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

    读懂,什么是BLE?

    读懂,什么是BLE?
    的头像 发表于 11-27 17:11 2279次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>读懂</b>,什么是BLE?

    docker容器容器之间通信

    Docker种轻量级容器化技术,能够将应用程序及其依赖项封装在个独立、可移植的容器中。而容器
    的头像 发表于 11-23 09:36 1544次阅读

    docker进入容器的方法有哪些

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