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

CSDN 2024-07-08 13:07:02 阅读 83

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

img

推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航

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

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

博客目录

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

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

在这里插入图片描述

1.脚本概览

首先,让我们对脚本进行一个整体的概览。脚本以<code>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.脚本详解

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

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

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

运行新容器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}:指定要运行的镜像名称。

查看容器日志:使用docker logs -f --tail 500命令实时查看容器的日志输出,--tail 500表示从最近的 500 条日志开始显示。

3.Docker 容器技术的优势

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

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

在这里插入图片描述

4.结语

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

觉得有用的话点个赞 <code>👍🏻 呗。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

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

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

img



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。