【Docker系列】深入解析 Docker 容器部署脚本

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 1.脚本概览
    • 2.脚本详解
    • 3.Docker 容器技术的优势
    • 4.结语

在当今快速发展的云计算和微服务架构中,Docker 容器技术已经成为部署和管理应用程序的主流方式之一。本文将通过分析一个具体的 Docker 容器部署脚本,来深入理解 Docker 容器的部署流程和相关命令的使用。
在这里插入图片描述

1.脚本概览

首先,让我们对脚本进行一个整体的概览。脚本以sudo tee命令开始,这是一种在 Linux 系统中创建或修改文件的常用方法。sudo表示以超级用户权限执行命令,tee是一个文本处理工具,可以将输入数据同时输出到标准输出和文件中。在本例中,它被用来创建或更新/home/app/kwan/prd-startup.sh文件。

sudo tee /home/app/kwan/prd-startup.sh <<-'EOF'
#!/usr/bin/env bash
CONTAINER_NAME=kwan
IMAGE_NAME=kwan:latest
docker rm -f ${CONTAINER_NAME}
docker rmi ${IMAGE_NAME}
docker pull ${IMAGE_NAME}
docker run -d --name ${CONTAINER_NAME} \--privileged=true \-e PROFILE=prd \-w /home \-p 8148:80 \-v $PWD/logs:/home/logs \-v /home/uploads:/home/uploads \--restart=always \${IMAGE_NAME}
docker logs -f --tail 500 ${CONTAINER_NAME}

<<-'EOF'是一个特殊的 here-document 语法,它允许在多行文本中使用制表符作为缩进,而不会在执行时被解释为特殊字符。

2.脚本详解

  1. 定义变量:脚本首先定义了两个变量CONTAINER_NAMEIMAGE_NAME,分别用于存储容器名称和镜像名称。这是为了提高脚本的可读性和可维护性。

  2. 清理旧容器和镜像:使用docker rm -f强制删除名为 kwan 的容器,使用docker rmi删除指定的镜像,确保部署的是最新的镜像。

  3. 拉取新镜像:使用docker pull命令从仓库中拉取最新的镜像。

  4. 运行新容器docker run命令用于创建并启动一个新的容器。参数解释如下:

    • -d:以守护进程模式运行容器。
    • --name:指定容器名称。
    • --privileged:给予容器特权模式,允许容器访问更多的系统资源。
    • -e PROFILE=prd:设置环境变量,可能用于区分不同的运行环境。
    • -w /home:设置容器的工作目录。
    • -p 8148:80:端口映射,将容器的 80 端口映射到宿主机的 8148 端口。
    • -v $PWD/logs:/home/logs:挂载卷,将当前目录下的logs目录挂载到容器的/home/logs目录。
    • -v /home/uploads:/home/uploads:挂载卷,将宿主机的/home/uploads目录挂载到容器的/home/uploads目录。
    • --restart=always:设置容器在退出时总是尝试重启。
    • ${IMAGE_NAME}:指定要运行的镜像名称。
  5. 查看容器日志:使用docker logs -f --tail 500命令实时查看容器的日志输出,--tail 500表示从最近的 500 条日志开始显示。

3.Docker 容器技术的优势

Docker 容器技术具有以下优势:

  • 轻量级:容器共享宿主机的内核,不需要像虚拟机那样模拟整个操作系统,因此启动速度快,资源占用少。
  • 隔离性:每个容器都是独立的运行环境,互不干扰,提高了系统的稳定性和安全性。
  • 可移植性:容器可以在不同的宿主机上无缝迁移,不受底层系统的限制。
  • 自动化部署:Docker 提供了丰富的工具和命令,可以方便地实现自动化部署和扩展。
    在这里插入图片描述

4.结语

通过分析这个 Docker 容器部署脚本,我们可以看到 Docker 在现代应用部署中的强大功能和灵活性。它不仅简化了部署流程,还提高了系统的稳定性和可维护性。随着云计算和微服务架构的不断发展,Docker 容器技术将继续在 IT 领域扮演重要的角色。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/30086.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【稳定检索/投稿优惠】2024年生物技术与食品科学国际会议(ICBFS 2024)

2024 International Conference on Biotechnology and Food Science 2024年生物技术与食品科学国际会议 【会议信息】 会议简称&#xff1a;ICBFS 2024 大会时间&#xff1a;点击查看 截稿时间&#xff1a;点击查看 大会地点&#xff1a;中国厦门 会议官网&#xff1a;www.icb…

汇聚荣优势是什么?

汇聚荣优势是什么?在探讨企业成功之道时&#xff0c;我们不得不提及“汇聚荣优势”这一概念。简而言之&#xff0c;它指的是企业通过整合内外部资源&#xff0c;形成独特的竞争优势&#xff0c;以实现持续发展与市场领先地位的战略行为。这种优势的构建不是一蹴而就的&#xf…

生信网络学院|06月21日《SolidWorks Costing助力制造企业建立成本核算体系》

课程主题&#xff1a;SolidWorks Costing助力制造企业建立成本核算体系 课程时间&#xff1a;2024年06月21日 14:00-14:30 主讲人&#xff1a;张丹清 生信科技 售前顾问 Costing成本分析简介钣金件成本分析加工件成本分析装配体成本分析总结&答疑 安装腾讯会议客户端或…

Windows上使用vscode配置C/C++编译环境

GCC和GDB 一句话概括&#xff1a;gcc用来编译C&#xff0c;gdb用来调试C。 GCC (GNU Compiler Collection) GCC&#xff08;GNU编译器套件&#xff09;是一个由GNU项目开发的编译器系统&#xff0c;支持多种编程语言&#xff0c;如C、C、Objective-C、Fortran、Ada和Go等。G…

校验正则表达式:中文、英文、中英文、中英文/数字/符号

export const checkName (rule, value, callback) > { let test /^[\u4E00-\u9FA5]$/.test(value); if (!value && rule[required]) { return callback(new Error(请输入)) } else if (value && !test || !test && rule[required]) { return call…

ARM32开发-fat_fs文件系统

FAT_FS 文件系统 FAT (File Allocation Table) 文件系统是一种广泛使用的基于磁盘的文件系统,尤其适用于小型嵌入式系统和存储卡。FAT_FS 就是一个专门针对 FAT 文件系统的开源实现。 FAT_FS 的主要特点 轻量级和高度可移植: FAT_FS 是一个非常轻量级的文件系统实现,占用资源少…

学懂C#编程:让函数返回 多个返回值 的几种常用技术

1. 使用 out 或 ref 参数 out 和 ref 参数允许方法修改传入变量的值&#xff0c;并通过它们“返回”多个值。ref 需要变量事先初始化&#xff0c;而 out 不要求。 public void GetValues(out int val1, out string val2) {val1 10;val2 "Hello"; }// 使用示例 int…

升级CENTOS 系统内核

更新系统和安装ELRepo存储库&#xff1a; sudo yum update sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org sudo yum install https://www.elrepo.org/elrepo-release-7.0-5.el7.elrepo.noarch.rpm安装最新的主线&#xff08;Mainline&#xff09;内核&…

人脸识别考勤机给企业带来了哪些好处

人脸识别考勤机给企业带来了哪些好处 随着考勤软件在国内各企业中逐渐使用&#xff0c;人们对于考勤的这种方式已不再生疏&#xff0c;传统的纸质签到、指纹打卡已因存在不灵敏、易作弊、难统计等诸多弊病&#xff0c;逐步被可以管理考勤的手机软件索取代&#xff1b; 近些…

【网络安全的神秘世界】渗透之信息收集流程

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 渗透测试之信息收集 切记&#xff1a;搜索到敏感信息之后&#xff0c;不要随意下载和传播&#xff0c;属于违法行为&#xf…

如何基于ITIL构建有效的IT服务管理体系

在数字经济时代&#xff0c;IT服务管理已成为企业运作的核心支撑。随着信息技术的快速发展和应用&#xff0c;企业对IT服务的需求不断增加&#xff0c;而如何高效地管理这些服务成为一个重要挑战。基于ITIL&#xff08;信息技术基础架构库&#xff09;构建有效的IT服务管理体系…

Virtualbox7.0版本安装报错:Invalid installation directory

错误情况 我在安装virtualbox最新版7.0.18时候&#xff0c;因为默认安装在C盘&#xff0c;我改成了E盘&#xff0c;然后就报错 Invalid installation directory The chosen installation directory is invalid, as it does not meet the security requirements. Refer to th…

深入理解 JS/TS 中的 filter 方法及其布尔值筛选功能

今天写需求的时候&#xff0c;需要对后端传回来的数据做乱码校验处理&#xff0c;需要筛除乱码数据。 这里我使用正则表达式并封装了一个判断是否为正常字段的方法。&#xff08;如果是正常字段返回true&#xff0c;乱码字段返回false&#xff09; 对后端返回的数据&#xff…

快速创建SpringBoot项目

在项目开发时候&#xff0c;我们不会自己创建一个maven项目&#xff0c;自己慢慢导入依赖&#xff0c;有更方便的方法&#xff1a; 1.idea快速创建spring boot项目 使用Spring Initializr 注意1&#xff1a;需要联网 注意2&#xff1a;resources里的目录结构&#xff1a; …

【js判断机型】

var isIOS /(iPhone|iPad|iPod)/i.test(navigator.userAgent) var isiPad navigator.userAgent.match(/(iPad)/) || (navigator.platform ‘MacIntel’ && navigator.maxTouchPoints > 1) 上面这个不行的话&#xff0c;再试下这个 var isiPad (navigator.userAg…

那些年我为了考PMP踩过的坑.....

说到考PMP我尊嘟很难过且伤心&#xff0c;众所周知&#xff0c;报考PMP都是要报机构的而且还是PMI认证的机构&#xff0c;所以在报考PMP过程中选的机构我可以说踩过了很多坑了...... Q&#xff1a;包过吗&#xff1f; 大家千万不要信某某机构说的包过噱头&#xff0c;真的很坑…

4000字读懂实时数仓的过去现在和未来(建议收藏)

1991年&#xff0c;比尔恩门&#xff08;Bill Inmon&#xff09;出版了他的第一本关于数据仓库的书《Building the Data Warehouse》&#xff0c;标志着数据仓库概念的确立。 我们所常说的企业数据仓库Enterprise Data Warehouse (EDW) &#xff0c;就是一个用于聚合不同来源的…

【嵌入式】嵌入式Linux开发实战指南:从交叉编译到触摸屏交互

文章目录 前言&#xff1a;1.简介1.1. 交叉编译工具1.2. 项目开发流程&#xff1a;1.3. ARM开发板的连接方法 2. 开发板连接3. 系统文件 IO4. 设置共享文件夹3.1. 读文件3.2. 写文件3.2. 设置文件偏移量 4. LCD显示屏显示4.1. LCD 显示颜色4.2. 将文件下载到开发板4.2.1. 在CRT…

002.Linux CentOS7 安装

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

【Android面试八股文】Kotlin内置标准函数apply的原理是什么?

文章目录 一、原理解析二、 示例代码2.1 具体示例应用场景2.2 为什么使用 `apply`?apply 是 Kotlin 标准库中的一个高阶函数,它的作用是在对象上执行一个代码块,并返回这个对象本身。其原理涉及到函数类型和接收者对象的结合使用。 一、原理解析 函数类型与接收者对象的结合…