最近遇到一个问题 百度之后发现是挂载目录的权限问题,说是需要挂载目录各自对应的用户组ID需要保持一致
- 查出来容器里的mysql用户组id
bash
docker run -ti --rm --entrypoint="/bin/bash" 镜像名 -c "cat /etc/group"
可以看到以下信息
这时我们可以知道mysql镜像容器的用户组id为999,所以我们把挂载目录的用户组ID也改为999
bash
chown -R 999 /home/data
需要将镜像中的mysql用户组id和宿主机中的当前用户组id保持一致
docker-compose
mysql:
image: mysql:5.7
restart: always
command: --default-authentication-plugin=mysql_native_password
ports:
- "3306:3306"
#左侧为容器中要改的用户组id 右侧为容器修改后的用户组id
user: "999:1000"
volumes:
- ./services/mysql:/var/lib/mysql
- ./services/mysql5.7/cnf/my.cnf:/etc/mysql/my.cnf
environment:
MYSQL_ROOT_PASSWORD: ********
TZ: Asia/Shanghai
networks:
- lnmp-network
container_name: mysql