在Docker镜像之间切换

问题描述 投票:0回答:2

我需要在我的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文件夹。我可以修复这个可怕的错误吗?谢谢。

docker docker-compose dockerfile docker-machine
2个回答
1
投票

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

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

希望这可以帮助


0
投票

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

  • 打开终端并使用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/目录现在在容器中可见为/下的目录
  • 在此终端上的testOrSo中创建一个名为home的文件
  • 回到另一个终端并输入find -name "testOrSo"并按enter,现在你有了通往该图像的正确路径。复制你想要的路径(在我的情况下是一个_data文件夹),找到显示你并选择安装的Desktop文件夹。
  • 您可以在Mac桌面上显示数据。

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

© www.soinside.com 2019 - 2024. All rights reserved.