Skip to content

最近遇到一个问题 file 百度之后发现是挂载目录的权限问题,说是需要挂载目录各自对应的用户组ID需要保持一致

  • 查出来容器里的mysql用户组id
bash
docker run -ti --rm --entrypoint="/bin/bash" 镜像名 -c "cat /etc/group"

可以看到以下信息 file

这时我们可以知道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

Released under the MIT License.