在开发 wep 应用程序时处理 docker 容器数据

handle docker container data while developing wep application

我为 magento2 安装提取了这个 image

现在我正在尝试在主机中获取容器 /var/www/html 数据,然后我可以使用 phpstorm 处理。

我这样试过,但它覆盖了容器中的所有内容 /var/www/html

docker run --name development-phase -d -p 5000:80 -v /u01/magento2:/var/www/html magento2

正在创建卷

数据流: 从主机 /u01/magento2 到容器 /var/www/html

但我正在寻找

数据流应该从容器/var/www/html到主机/u01/magento2

我提到了一些堆栈溢出 link 所有建议在创建卷之前将容器数据复制到主机,在我的例子中 docker cp 命令影响 magento2 的一些先决条件设置,因此页面无法加载正确。

这就是 Docker 中卷的行为:

  • -v /host/path:/container/path不复制数据
  • -v /container/path 将复制数据并使用随机名称创建新卷

所以,你可能想试试

docker run --name development-phase -d -p 5000:80 -v /var/www/html magento2

然后使用docker inspect

找出"Destination":"/var/www/html"的属性Source值的随机路径
docker inspect --format "{{json .Mounts}}" development-phase

使用

可读性更高
docker inspect -f "{{json .Mounts}}" development-phase \
 | jq '.[] | select(.Destination | contains("/var/www/html"))'