Wordpress图像与mysql数据

时间:2018-06-06 06:47:36

标签: docker

是否有任何包含wordpress和mysql数据的图像? 当我提交并备份映像时,不包含mysql数据。我更喜欢两张图片。 我尝试使用这个Dockerfile创建这样的图像:

FROM tutum/lamp:latest
RUN rm -fr /app && git clone https://github.com/WordPress/WordPress.git /app
EXPOSE 80 
CMD ["/run.sh"]

我可以使用像这样的命令启动全新安装......

docker run -p 88:80 shantanuo/wp

但是容器不能移动到另一台服务器"按原样#34;。我需要使用 mysql-dump 命令进行数据备份,这是我试图避免的。有可能吗?

如果我没有对容器进行管理,那么我就可以将wordpress图像与其数据一起复制。

https://hub.docker.com/r/shantanuo/lamp/~/dockerfile/

但它在新服务器上不起作用。添加wordpress标签。

2 个答案:

答案 0 :(得分:1)

  

是否有任何可用的图像包含wordpress和mysql数据?

简答:不推荐。

图像通常处理一个服务(因此这里将涉及两个图像:wordpress和MySQL)

持久性数据不会出现在图像中,而是出现在 volume / bind mount 中的主机上。

例如,tutumcloud/lamp image确实声明 volumes

# Add volumes for MySQL 
VOLUME ["/etc/mysql", "/var/lib/mysql" ]
  

docker run命令使用基本映像中指定位置存在的任何数据初始化新创建的卷。

制作自己的图像,不用这些行可能会按预期工作(即使用提交容器)。
但是如果服务器在任何时候重新启动,或者你必须让docker再次运行你的原始容器,那么它将重新开始,没有数据。

典型的docker wordpress图片会使用mysql one

version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_PASSWORD: example

  mysql:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example

反过来,mysql容器将使用本地主机安装的卷来持久化数据库。

docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql \
           -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

例如,请参阅“Quickstart: Compose and WordPress

因此,您不仅应该提交Wordpress图像,还要提交您的Mysql图像,您的音量。

但是,不支持提交卷:请参阅“Commit content of mounted volumes as well”以使用其中的WordPress数据库备份该卷。

使用这三个备份,然后将它们迁移到其他服务器。

然而,这看起来过于复杂,第二台服务器上新的WordPress / MySQL docker项目更容易启动。
然后,您需要,是的,您的数据库转储文件 和其他一些Wordpress文件夹(如主题)

请参阅“Easy WordPress Migration with Docker” 这是尝试从一个服务器提交现有容器并将它们“移植”到另一个服务器上的推荐方法。

答案 1 :(得分:0)

如果要将workig数据集导出到另一台服务器,则docker具有commit命令。此命令从正在运行的容器中创建新图像。

$ docker commit c3f279d17e0a svendowideit/testimage:version3

Documentation