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

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

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

在处理应用程序时,我们可以使用绑定挂载将我们的源代码挂载到容器中。当我们更改代码后,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
然后就可以一边更新代码一遍浏览效果了

猜你喜欢

转载自blog.csdn.net/hyh17808770899/article/details/126124258