在 Docker 张图片之间切换

Switch between Docker Images

我的 mac 上 docker 需要一些帮助。我有一个容器,其中 运行 是 mysql 的一个实例,我在一年前创建了它,直到今天它都运行良好。我已经使用了 Kitematic,我不知道为什么我的 mysql 容器被重新启动擦除。遵循本指南

https://timonweb.com/posts/getting-path-and-accessing-persistent-volumes-in-docker-for-mac/

我在这条路上找到了

    linuxkit-025000000001:/var/lib/docker/volumes/41ba749910c92b2ab8e4d4a538fd6d15fad29864f2068f26629a8a7bddfcb53b/_data# 

包含我的表格的 mysql 文件夹。我可以修复这个可怕的错误吗?谢谢。

在您的主目录中创建一个文件夹,并将数据文件夹的内容复制到其中:

mkdir ~/mysql-data
cp -r /var/lib/docker/volumes/41ba749910c92b2ab8e4d4a538fd6d15fad29864f2068f26629a8a7bddfcb53b/_data/* ~/mysql-data

现在启动一个 mysql 容器映射 ~/mysql-data 到 /var/lib/mysql

像这样:

docker run \
  --name mysql \
  -v ~/mysql-data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=some-password \
  -d \
  mysql:tag

希望对您有所帮助

好的,我找到了解决方案。不幸的是,我可以在线阅读 Docker 文档,在 Mac Os X 系统(我有 Mojave)上,您无法通过 /var/lib/docker/volumes 文件夹访问,因为您必须访问通过 screen 查看此文件夹,您可以在我的回答中的 link 中阅读。所以我做了这些事情:

  • 打开终端并使用screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
  • 您应该会看到一个空白屏幕,只需按 Enter 键,过一会儿,您应该会看到一个命令行提示符
  • 打开另一个终端并写入 docker run -it -v ~/Desktop:/Desktop <runs a container from an image> bash,因为您可以从 Docker documentation
  • 读取
  • 用户的 ~/Desktop/ 目录现在在容器中显示为 /
  • 下的目录
  • 在此终端的 home 中创建一个名为 testOrSo 的文件
  • 返回到另一个终端并输入 find -name "testOrSo" 并按 enter 现在您已经找到了该图像的正确路径。在查找显示的路径中复制您想要的内容(在我的例子中是 _data 文件夹),然后选择安装的 Desktop 文件夹。
  • 您可以在 Mac 桌面上显示您的数据。

我知道这可能不是 100% 完美的解释,或者可能有更快的方法,但我解决了我的问题。希望对您有所帮助!