首页 > 其他分享 >3.6 Docker最新入门教程-Docker入门-使用绑定挂载

3.6 Docker最新入门教程-Docker入门-使用绑定挂载

时间:2022-11-29 09:48:15浏览次数:142  
标签:run app 入门教程 yarn 3.6 3000 && 挂载 Docker

3.6 使用绑定挂载

在上一章中,我们讨论并使用命名卷来持久化数据库中的数据。如果我们只想存储数据,命名卷就很棒,因为我们不必担心数据存储在哪里。

使用绑定挂载,我们可以控制主机上的确切挂载点。我们可以使用它来持久化数据,但它通常用于向容器提供额外的数据。在应用程序上工作时,我们可以使用绑定挂载将我们的源代码挂载到容器中,让它看到代码更改、响应,并让我们立即看到更改。

对于基于node的应用程序,nodemon是监视文件更改然后重新启动应用程序的好工具。大多数其他语言和框架都有等效的工具。

快速卷类型比较

绑定挂载和命名卷是 Docker 引擎附带的两种主要类型的卷。但是,可以使用其他卷驱动程序来支持其他用例(SFTPCephNetAppS3等)。

命名卷 绑定挂载
主机位置 Docker选择 你控制
安装示例(使用-v my-volume:/usr/local/data /path/to/data:/usr/local/data
使用容器内容填充新卷
支持卷驱动

启动开发模式容器

要运行我们的容器以支持开发工作流程,我们将执行以下操作:

  • 将我们的源代码挂载到容器中
  • 安装所有依赖项,包括“dev”依赖项
  • 启动 nodemon 以监视文件系统更改

所以,让我们开始吧!

  1. 确保您没有任何以前的getting-started容器正在运行。

  2. 从 app 目录运行以下命令。之后我们会解释发生了什么。

    如果您使用的是 x86-64 Mac 或 Linux 设备,请使用以下命令。

     $ docker run -dp 3000:3000 \
         -w /app -v "$(pwd):/app" \
         node:latest \
         sh -c "yarn config set registry https://registry.npm.taobao.org/ && yarn install && yarn run dev"
    

    如果您使用的是 Windows,请在 PowerShell 中使用以下命令。

     PS> docker run -dp 3000:3000 `
         -w /app -v "$(pwd):/app" `
         node:latest `
         sh -c "yarn config set registry https://registry.npm.taobao.org/ && yarn install && yarn run dev"
    

    如果您使用的是 Apple silicon Mac 或其他 ARM64 设备,请使用以下命令。

     $ docker run -dp 3000:3000 \
         -w /app -v "$(pwd):/app" \
         node:latest \
         sh -c "apk add --no-cache python2 g++ make && yarn config set registry https://registry.npm.taobao.org/ &&  yarn install && yarn run dev"
    
    • -dp 3000:3000- 和之前一样。以分离(后台)模式运行并创建端口映射
    • -w /app- 设置“工作目录”或命令将从中运行的当前目录
    • -v "$(pwd):/app"- 将当前目录从主机绑定挂载到/app容器中的目录
    • node:latest- 要使用的镜像。请注意,这是来自 Dockerfile 的应用程序的基础镜像
    • sh -c "yarn install && yarn run dev"- 命令。我们正在使用sh(alpine 没有bash)启动一个 shell 并运行yarn install以安装所有依赖项,然后运行yarn run dev. 如果我们查看package.json,我们会看到dev脚本正在启动nodemon
  3. 您可以使用查看日志docker logs。当你看到这个时,你就会知道你已经准备好了:

     $ docker logs -f <container-id>
     nodemon src/index.js
     [nodemon] 1.19.2
     [nodemon] to restart at any time, enter `rs`
     [nodemon] watching dir(s): *.*
     [nodemon] starting `node src/index.js`
     Using sqlite database at /etc/todos/todo.db
     Listening on port 3000
    

    Ctrl查看完日志后,按+退出C

  4. 现在,让我们对应用程序进行更改。在src/static/js/app.js文件中,让我们将“添加项目”按钮更改为简单地说“添加”。此更改将在第 109 行:

     -                         {submitting ? 'Adding...' : 'Add Item'}
     +                         {submitting ? 'Adding...' : 'Add'}
    
  5. 只需刷新页面(或打开它),您应该几乎立即在浏览器中看到更改。Node 服务器重启可能需要几秒钟,因此如果出现错误,请在几秒钟后尝试刷新。

    添加按钮的更新标签的屏幕截图

  6. 随意进行您想要进行的任何其他更改。完成后,停止容器并使用以下命令构建新镜像:

     $ docker build -t getting-started .
    

使用绑定挂载非常普遍。优点是开发机器不需要安装所有构建工具和环境。只需一个docker run命令,开发环境就可以启动并准备就绪。我们将在未来的步骤中讨论 Docker Compose,因为这将有助于简化我们的命令(我们已经获得了很多标志)。




个人写的小程序,有需求的可以看看:

头像易 : 定制专属个性头像,目前有万圣节、世界杯主题,后续会增加更多主题
源码地址https://gitee.com/eyes-star/txy-openmp.git

标签:run,app,入门教程,yarn,3.6,3000,&&,挂载,Docker
From: https://www.cnblogs.com/eyesstar/p/16934468.html

相关文章

  • 3.5 Docker最新入门教程-Docker入门-持久化数据库
    3.5持久化数据库您是否注意到,每次我们启动容器时,我们的待办事项列表都会被清除干净。为什么是这样?让我们深入了解容器的工作原理。容器的文件系统当容器运行时,它使用镜......
  • Dockerfile
    DockerfileFROM:指定基础镜像WORKDIR:指定工作目录,不存在则自动创建COPY:将源路径的文件复制到镜像目标路径,类似的有ADD命令ENV:用来设置编译阶段需要的环境变量RUN:执行命......
  • docker 离线迁移镜像
    制作离线镜像包我们需要在有网的docker下制作离线镜像包,这里我们用hello-world镜像演示在有网的docker下拉取镜像dockerpullhello-world将镜像压缩成tar文件(......
  • ubuntu docker离线安装教程
    离线安装包下载docker离线安装时需要三个安装包:containerd.io包、docker-ce-cli包,docker-ce包,下载地址:https://download.docker.com/linux/ubuntu/dists/xenial/pool/stab......
  • centos7 docker离线安装教程
    离线安装包下载docker离线安装时需要两个安装包:selinux包、docker包,下载地址:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/selinux包下载https:/......
  • 正则表达式30分钟入门教程
     正则表达式30分钟入门教程版本:v2.3(2008-4-13)作者:​​deerchao​​​转载请注明来源目录​​跳过目录​​​​本文目标​​​​如何使用本教程​​​​正则表达......
  • CentOS7一键脚本安装docker并创建ES集群(docker版本)
    ​CentOS7一键脚本安装docker并创建ES集群(docker版本)原创 yuanfan2012 WalkingCloud 2022-11-2819:59 发表于浙江收录于合集#Linux学习笔记288个#CentOS......
  • Docker 搭建Redis集群(哨兵模式)
    一、简介Redis集群的哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而......
  • 【2022-11-28】Docker部署搭建Yapi
    一、环境准备1.准备一台虚拟机\或者购买服务器2.虚拟机硬件要求2.1内存2-4G2.2CPU2核2G2.3硬盘至少20G3.系统镜像 centos7.9二、安装docker#......
  • 轻松掌握Docker使用-进阶操作(二)
    前言在上一节《​​轻松掌握Docker使用-基础入门(一)​​》中我们了解到:Docker是什么?Docker的镜像管理&基础命令Docker容器的基本操作这一节,我们来学习:如何定制Docker镜......