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

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

在当今快速发展的云计算和微服务架构中,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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐