Docker-使用绑定挂载(持久化数据)

本文探讨了如何使用命名卷在Docker中持久化数据,并对比了与绑定挂载的区别。重点讲解了如何在开发环境中利用绑定挂载实时更新代码,以及通过实例展示如何配置开发容器,包括使用`-v`选项和不同平台的命令行示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用命名卷来持久化数据到我们的数据库中,不需要担心数据存储在哪里

使用绑定挂载,可以控制主机上的确切挂载点。我们可以使用它来持久化数据,但它通常用于向容器中提供额外的数据。

在处理应用程序时,我们可以使用绑定挂载将我们的源代码挂载到容器中。当我们更改代码后,docker运行的对应镜像也同步更改,不需要重新构建镜像。

快速卷类型比较
命名卷绑定挂载
主机位置Docker 选择你控制
挂载示例(使用-v我的命名卷:/usr/local/data/path/to/data:/usr/local/data
用容器内容填充新卷是的
支持卷驱动程序是的
启动一个开发模式容器

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

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

1、将前面运行的getting-started容器停止并删除

2、从应用程序目录运行以下命令。

 $ docker run -dp 3000:3000 \
    -w /app -v "$(pwd):/app" \
    node:12-alpine \
    sh -c "yarn install && yarn run dev"

如果使用的是 Windows,请在 PowerShell 中使用此命令:

 PS> docker run -dp 3000:3000 `
    -w /app -v "$(pwd):/app" `
    node:12-alpine `
    sh -c "yarn install && yarn run dev"

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

$ docker run -dp 3000:3000 \
    -w /app -v "$(pwd):/app" \
    node:12-alpine \
    sh -c "apk add --no-cache python2 g++ make && yarn install && yarn run dev"
  • -dp 3000:3000 和之前一样,以分离(后台)模式运行并创建端口映射
  • -w /app 设置“工作目录”或 命令将运行的当前目录
  • -v "$(pwd):/app" 将容器中主机的当前目录绑定挂载到/app目录中
  • node:12-alpine 要使用的镜像。请注意,这是来自将项目构建成基础镜像前创建的 Dockerfile 文件
  • sh -c "yarn install && yarn run dev" 命令。我们正在使用sh启动一个 shell 并运行yarn install以安装所有依赖项,然后运行yarn run dev(运行项目的命令)。如果我们查看package.json,我们会看到dev脚本正在启动nodemon

3、查看日志docker logs

docker logs -f <container-id>

image-20220617164451694

如果出现上图这种,则表示已经成功

4、让我们对应用程序进行更改。在src/static/js/app.js文件中109行,将“Add Item”按钮更改为“添加”。

{submitting ? 'Adding...' : '添加'}

image-20220617165153010
然后就可以一边更新代码一遍浏览效果了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨云21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值