在 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% 完美的解释,或者可能有更快的方法,但我解决了我的问题。希望对您有所帮助!
我的 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% 完美的解释,或者可能有更快的方法,但我解决了我的问题。希望对您有所帮助!