有了compose,传递mount各种参数的,就不用大费周章.而且一个compose可以由多个image组合,做复杂的事情.
有一个叫wordpress的docker,但是他没有数据库能力,还有一个叫mysql的docker,他没有wordpress的能力,但是wordpress一向都是mysql + web server.
在wordpress目录新建一个描述文件.(这里wordpress自身没产生数据为前提,比如附件是不行的,因为他不在数据库.)
version: "3"
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

然后进入去测试下.(会自动拉去相关包)
docker-compose up -d

最后访问8000端口就看得到博客了.

数据库信息是预置的.

这样就完成了啊.刚才还说到附件的事情,我们不妨测试下.

然后我们结束docker,删除,再启动它.(记得这个两个容器),然后果然图片不见了.

这个Docker的WordPress路径再哪里,我们进去看看.

所以要映射的volume路径应该是/var/www/html/wp-content/uploads,并且默认挂载是root权限的.

默认是root权限,就要我们自己设置一下.(一次配置重启不丢)
docker exec -i 3d38 /bin/bash -c "chown www-data:www-data /var/www/html/wp-content/uploads -R"

因为他同时写了这里的目录.
