首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker卷创建权限

docker卷创建权限
EN

Stack Overflow用户
提问于 2019-05-15 07:47:00
回答 1查看 326关注 0票数 0

我在debian 9上运行这个

我使用sudo docker volume create db来创建我在docker-compose.yml中使用的卷。但我还是得到了错误db_1_d89b59353579 | mkdir: cannot create directory '/var/lib/mysql': Permission denied

如何使用该卷为用户设置权限。以及如何获得用户?

码头工人-组成:

代码语言:javascript
复制
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文件:

代码语言:javascript
复制
...
sudo docker volume create db

sudo docker-compose build
docker-compose up -d
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-15 10:12:53

首先尝试将挂载更改为本地文件夹,看看是否解决了问题:

代码语言:javascript
复制
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内部转换语句的方式的不同之处。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56144077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档