我在使用docker-compose文件启动docker容器时(MariaDB、RabbitMQ和Maven),遇到了与docker卷相关的问题。我使用以下命令简单地启动它们:docker-compose up -d
(不需要使用SUDO)。
我的卷的定义如下:
...
volumes:
- ./production/mysql:/var/lib/mysql:z
...
一切正常工作,并且创建了./production
目录(卷映射的位置)。
但是当我再次尝试使用down / up重启Docker容器时,会出现以下错误:
error checking context: 'no permission to read from '…/production/mysql/aria_log.00000001'
当我检查所提到的文件时,我发现它需要root:root权限。这是因为该文件在容器中使用root用户生成。因此,我尝试像文档中提到的那样使用命名空间。
无论如何,错误仍然会出现。有任何想法或参考资料吗?
谢谢。
Docker Compose File:
version: '3.8'
services:
mysql:
image: mariadb:latest
restart: always
env_file:
- config.env
volumes:
- ./production/mysql:/var/lib/mysql:z
environment:
MYSQL_DATABASE: ${DATABASE_NAME}
MYSQL_USER: ${DATABASE_USER}
MYSQL_PASSWORD: ${DATABASE_PASSWORD}
MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD}
networks:
- testnetwork
networks:
testnetwork:
docker
组的成员?grep docker /etc/group
会显示什么?它会显示你的用户吗? - Iduoad-rw-rw---- 1 999 ping 417792 Jan 6 16:04 aria_log.00000001
,这相当于主机中的999:999。 - Iduoadsudo usermod -aG docker $ USER
正确添加了你的用户?来源:https://askubuntu.com/questions/477551/how-can-i-use-docker-without-sudo - questionto42