我在debian 9上运行这个
我使用sudo docker volume create db来创建我在docker-compose.yml中使用的卷。但我还是得到了错误db_1_d89b59353579 | mkdir: cannot create directory '/var/lib/mysql': Permission denied。
如何使用该卷为用户设置权限。以及如何获得用户?
码头工人-组成:
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db:/var/lib/mysql:z
environment:
- MYSQL_ROOT_PASSWORD=***
- MYSQL_PASSWORD=***
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
ports:
- 8080:80
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always我有一个运行install.sh文件:
...
sudo docker volume create db
sudo docker-compose build
docker-compose up -d发布于 2019-05-15 10:12:53
首先尝试将挂载更改为本地文件夹,看看是否解决了问题:
version: '2'
volumes:
nextcloud:
db:
services:
db:
...
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=***
- MYSQL_PASSWORD=***
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
...
volumes:
- ./nextcloud:/var/www/html
restart: always如果这样做,那么检查docker-compose down是否正确地删除了卷。运行docker volume ls。如果它们仍然坚持,然后用手移除,并重新运行您的容器与体积。
关于安装到卷(db:/var/lib/mysql)和安装到主机路径(./db:/var/lib/mysql)之间的区别,
在第一种情况下,它是码头管理员管理的卷。它是用于持久化的,但获取文件则要复杂一些。在第二种情况下,它是一个主机上的路径,它使检索持久化文件更加容易。我建议在这两种情况下运行“”,并查看docker内部转换语句的方式的不同之处。
https://stackoverflow.com/questions/56144077
复制相似问题