首页 > 其他分享 >Docker入门实践(六)

Docker入门实践(六)

时间:2024-10-16 17:01:16浏览次数:1  
标签:node 容器 container 入门 app 实践 镜像 Docker docker

环境

  1. VMware Workstation Pro
  2. ubuntu-23.04

构建镜像

了解镜像层实现原理

  1. 完成下载的层被提取到主机系统特定的目录。
  2. 当你从镜像启动一个容器,会按特定顺序将所有层堆叠起来组成一个统一的文件系统。
  3. 当容器启动,使用chroot设置容器的根目录为这个统一文件系统的路径。
  4. 当统一文件系统被创建,还会为运行容器而单独创建一个目录,这个目录允许容器进行文件系统的修改而不影响原始的镜像层,这也使得从相同镜像可以允许多个容器。

创建基础镜像

  1. 启动ubuntu容器
docker run --name=base-container -ti ubuntu
root@d8c5ca119fcd:/#
  1. 安装Node.js
apt update && apt install -y nodejs

node -e 'console.log("Hello world!")'
  1. 从容器创建镜像
docker container commit -m "Add node" base-container node-base
  1. 查看镜像层
docker image history node-base
  1. 从镜像启动容器
docker run node-base node -e "console.log('Hello again')"
  1. 移除创建镜像临时用的容器
docker rm -f base-container

基于基础镜像构建应用镜像

  1. 从基础镜像启动容器
docker run --name=app-container -ti node-base
  1. 写入应用程序
echo 'console.log("Hello from an app")' > app.js
  1. 容器内运行应用程序
node app.js
  1. 基于基础镜像构建应用镜像
docker container commit -c "CMD node app.js" -m "Add app" app-container sample-app
  1. 查看镜像层
docker image history sample-app
  1. 从应用镜像运行应用程序
docker run sample-app
  1. 移除临时创建的容器
docker rm -f app-container

标签:node,容器,container,入门,app,实践,镜像,Docker,docker
From: https://www.cnblogs.com/luoxiaolei/p/18470316

相关文章

  • C++入门语法
    目录知识点补充1.C语言中的作用域作用域的种类作用域的影响2.以下是C++和C语言对全局变量和局部变量命名冲突的处理3.类型定义C++关键字命名空间1.C++提出的命名空间是为了解决C语言以下几个缺陷2.命名空间的3种定义方式2.1.正常的命名空间定义2.2.命名空间可以嵌......
  • 【免费赠书】重磅消息,免费赠书啦,免费赠送《软件性能测试、分析与调优实践之路(第2版)》
    为了答谢各位读者对清华大学出版社出版的《软件性能测试、分析与调优实践之路(第2版)》的喜爱,定于2024.10.31号19:30开始赠送本书,并且包邮。如何参加活动:1、首先关注清哥聊技术公众号,并且向公众号发送消息: 软件性能测试、分析与调优实践之路,以报名参加活动。2、管理员在收到消......
  • Docker实践与应用举例
    Docker实践与应用举例1.Docker简介1.1什么是Docker?Docker是一种开源的容器化平台,用于简化应用程序的开发、部署和运行。容器化是将应用程序及其依赖打包在一起,在任何支持Docker的环境中运行,确保应用程序在开发、测试、生产环境的一致性。1.2Dockervs虚拟机虽然Doc......
  • 敏捷转型中的敏捷实践:Leangoo领歌scrum工具私有部署解决方案
    近年来,敏捷开发逐渐成为企业项目管理中的热门话题。无论是互联网公司还是传统制造业,越来越多的企业通过敏捷方法,提升了项目的交付效率和团队的协作能力。在这个背景下,如何选择合适的敏捷管理工具,并确保其安全性和灵活性,成为了不少企业关注的焦点。 很多团队在讨论敏捷实践时,会......
  • shell脚本自动选择空间最大的目录安装docker
    #!/bin/bash#二进制包安装docker-xy.xy.x-ce#变量unamer=`uname-r|cut-d'.'-f1-2`Max_Space=$(df|grep"^/dev"|sort-rn-k2|head-1|awk'{print$6}')Registry="mirror.eastraycloud.com:8665"#判断当前系统类型Unamer=$(uname-v|......
  • 一个案例入门补环境
    此分享只用于学习用途,不作商业用途,若有冒犯,请联系处理反爬前置信息站点:aHR0cDovLzEyMC4yMTEuMTExLjIwNjo4MDkwL3hqendkdC94anp3ZHQvcGFnZXMvaW5mby9wb2xpY3k=接口:/xjzwdt/rest/xmzInfoDeliveryRest/getInfoDeliveryList破解结果预览何谓补环境补环境其实是补浏览器有而Node......
  • Kotlin 入门教程:流程控制
    我们有时希望程序能够根据不同的条件来决定是否执行某些代码段(条件判断),或者反复执行某段代码直到满足特定条件为止(循环),这些功能的实现方式统称为「流程控制」;本文介绍Kotlin的流程控制。本文出现的所有代码均可在Kotlin官方在线代码调试器运行,部分代码下方也会提供链接......
  • 基于cloudreve(Docker应用)搭建网盘服务,用于目录的分享和在线预览。
    文章目录I基于cloudreve(Docker应用)搭建网盘服务安装主要功能设置角色最大容量II知识扩展:网盘类的文件预览需求背景:iOS可以直接预览PDF等常见格式文件,但是Android浏览器需要先下载文件,才能查看文件内容,因此需要搭建支持目录的分享和在线预览的Min......
  • Jenkins+Ant+JaCoCo的代码覆盖率集成实践
    Jenkins+Ant+JaCoCo的代码覆盖率集成实践一、工具介绍Jenkins:Jenkins是一个开源的、基于Java开发的持续集成工具,它可以帮助开发人员自动化构建、测试和部署软件项目。Ant:ApacheAnt是一个基于Java的自动化构建工具,类似于Maven,但更为灵活,适用于各种复杂的构建任务。JaCoCo:J......
  • python+eel入门示例
    安装eelpipinstalleelpyimporteelimportrandom#笑话列表jokes=["为什么电脑经常生病?因为窗户(Windows)总是开着!","为什么数学书看起来总是很悲伤?因为它里面有太多的问题(problems)","为什么海洋里没有电脑?因为它们总是遇到短路(seals)","为什么冰......