使用命名卷
来持久化数据到我们的数据库中,不需要担心数据存储在哪里
使用绑定挂载
,可以控制主机上的确切挂载点。我们可以使用它来持久化数据,但它通常用于向容器中提供额外的数据。
在处理应用程序时,我们可以使用绑定挂载
将我们的源代码挂载到容器中。当我们更改代码后,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...' : '添加'}
然后就可以一边更新代码一遍浏览效果了