有了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"
因为他同时写了这里的目录.