什么是最简单的Macdocker设置为档案目的?

我在我的计算机上有一堆旧的网站(wordpress / mysql / php,ruby 1.x / sqlite等),我希望确保在未来可以轻松访问,而不必浪费我的环境。

Docker似乎是完成这个任务的最佳人选,但是我已经试过多次将自己的头围绕在它身上,并且意识到是时候请求专业人士的帮助了。

我已经浪费了这么多时间搞乱了这个东西,而且已经被深度压倒了。 起初(在wp / mysql的问题的情况下),我试图创build两个不同的图像(一个WordPress的/ PHP的一个,一个MySQL的),并将它们连接在一起,这吸引了我的程序员的心态做到这一点正确的方式。

但是我的用户体验心态已经胜出了,我放弃了正确的道路,希望能够以最简单的方式运作,以便将来我 (一旦完成这个任务,将会忘记所有这些docker的知识)再弄明白

所以这里是我想要的:一个docker设置,我可以把一个导出的mysql数据库和一个wordpress站点放在一个文件夹,所以当我启动那个badboy 繁荣 –我浏览一些旧网站,做了很多在2005年感觉,现在没有任何意义。

知道我在说什么? 我可以做到这一点最简单,面向未来的方式是什么? 如果我想编辑它们,是否可以将数据/文件保存在容器之外? 我正在使用Docker For Mac。

这听起来像你想要的东西真的通用,这将是所有的网站,你有。 这可能是棘手的,因为Docker本质上不是通用的。 你通常没有一个Docker镜像,所有的工具(PHP,Ruby等)都可以运行。 通常你只需要在图像中构build你需要的东西。

有了这个说法,也许还可以做一些你所要求的事情,我想我可以让你指出正确的方向。 官方的Wordpress Docker镜像应该可以运行你的Wordpress站点。 你实际上是在一个单独的MySQL映像正确的轨道上,这是很容易实现与docker-compose

你的docker-compose.yml文件看起来像这样:

 version: '3' services: wordpress: image: wordpress:4-php5.6-apache ports: - "8080:80" volumes: - ./:/var/www/html environment: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: password WORDPRESS_DB_NAME: wordpress mysql: image: mariadb:10.1 ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: wordpress 

这是一个简短的总结:

  • 创build2个Docker容器,一个用于Wordpress,一个用于MySQL。
  • 将请求从127.0.0.1:8080转发到端口80上的Wordpress容器。
  • 在wordpress容器中挂载.//var/www/html 。 这意味着它将从当前目录中提供Wordpress。
  • configuration环境variables,以便知道如何连接到数据库。
  • 准备MySQL Docker容器。
  • 转发容器上的127.0.0.1:3306至3306。 所以你可以做mysql -u root -ppassword -h 127.0.0.1

现在,如果你创build一个名为docker-compose.yml的文件,类似于你想要的Wordpress目录中的那个,你可以简单地在这个目录下运行docker-compose up ,然后你将在容器中运行Wordpress。 如果您需要恢复数据库转储,则可以使用cat dump.sql | mysql -u root -ppassword -h 127.0.0.1 WORDPRESS cat dump.sql | mysql -u root -ppassword -h 127.0.0.1 WORDPRESS 。 你可以访问localhost:8080 。 通过在你的项目中放置一个docker-compose.yml文件,为它们启动一个容器是非常快速的。

现在,因为像这样的StackOverflow答案的范围是相当有限的,你可能会遇到一些在这里和那里,我没有涵盖在这个答案的困境。 但是如果你愿意投入一点时间来学习Docker(实际上并不那么复杂),这对你来说可能是一个很好的解决scheme。

Docker for Mac和大量的PHP文件(wordpress,Symfony)作为已安装的资源并不相像 …如果你不想用docker-sync和其他一些技巧做一些奇特的技巧( 因为数据库可能会很慢以及 )。

我的build议 – 如果你想轻而易举就可以使用stream浪汉来设置一个虚拟机,将服务于所有的网站? 你可以使用puphpet.com来轻松点击你的机器。 甚至有可能标记SQL文件导入…然后看config.yml文件你会知道如何添加额外的主机function,然后你只是消灭stream浪汉规定,以及它的设置。

如果您需要一些旧的PHP或每个站点的不同环境/设置,则会出现问题。 不幸的是,Docker for Mac现在还不是一个万无一失的解决scheme。