使用命名卷来持久化数据到我们的数据库中,不需要担心数据存储在哪里
使用绑定挂载,可以控制主机上的确切挂载点。我们可以使用它来持久化数据,但它通常用于向容器中提供额外的数据。
在处理应用程序时,我们可以使用绑定挂载将我们的源代码挂载到容器中。当我们更改代码后,docker运行的对应镜像也同步更改,不需要重新构建镜像。
| 命名卷 | 绑定挂载 | |
|---|---|---|
| 主机位置 | Docker 选择 | 你控制 |
挂载示例(使用-v) | 我的命名卷:/usr/local/data | /path/to/data:/usr/local/data |
| 用容器内容填充新卷 | 是的 | 不 |
| 支持卷驱动程序 | 是的 | 不 |
要运行我们的容器以支持开发工作流程,我们将执行以下操作:
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

如果出现上图这种,则表示已经成功
4、让我们对应用程序进行更改。在src/static/js/app.js文件中109行,将“Add Item”按钮更改为“添加”。
{submitting ? 'Adding...' : '添加'}

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