💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 推荐: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.脚本详解
-
定义变量:脚本首先定义了两个变量
CONTAINER_NAME
和IMAGE_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 领域扮演重要的角色。
觉得有用的话点个赞
👍🏻
呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙