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