我需要在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文件夹。我可以修复这个可怕的错误吗?谢谢。
答案 0 :(得分:1)
在主目录中创建一个文件夹,然后在其中复制数据文件夹的内容:
mkdir ~/mysql-data
cp -r /var/lib/docker/volumes/41ba749910c92b2ab8e4d4a538fd6d15fad29864f2068f26629a8a7bddfcb53b/_data/* ~/mysql-data
现在启动一个将〜/ mysql-data映射到/ var / lib / mysql的mysql容器
类似这样的东西:
docker run \
--name mysql \
-v ~/mysql-data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=some-password \
-d \
mysql:tag
希望这会有所帮助
答案 1 :(得分:0)
好的,我找到了解决方案。不幸的是,由于我可以在线阅读并在Docker文档中阅读,因此在Mac Os X系统(我有Mojave)上,您无法通过/var/lib/docker/volumes
文件夹进行访问,因为您必须通过screen
进行访问才能查看此文件夹,因为您可以阅读我答案中的链接。所以我做了这些事情:
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
docker run -it -v ~/Desktop:/Desktop <runs a container from an image> bash
,就像从Docker documentation读到的~/Desktop/
目录现在在容器中显示为/
下的目录testOrSo
中创建一个名为home
的文件find -name "testOrSo"
并按enter
,现在您已找到该图像的正确路径。在找到您的路径中复制所需的内容(在我的情况下为_data
文件夹),然后选择已安装的Desktop
文件夹。 我知道这可能不是100%完美的解释,或者可能会有更快的方法,但是我解决了我的问题。希望对您有所帮助!