Ubuntu 20.04 + Docker: 올바른 폴더 권한

Ubuntu 20.04 + Docker: 올바른 폴더 권한

Ubuntu 20.04를 설정할 때 Docker도 설치하도록 선택했습니다. docker그룹을 만들고 여기에 사용자를 추가하는 것 외에는 설정을 변경하지 않았습니다(즉, Docker가 루트로 실행된다고 생각합니다) .

내 컨테이너는 데이터를 /home/docker. 폴더에 FTP를 사용하여 일부 파일을 추가/편집할 수 있도록 모든 하위 폴더의 소유권을 myuser:myuser. 그 결과 오늘 아침 SQL이 제대로 작동하지 않았습니다. 나는 마침내 root:rootphpMyAdmin을 사용하여 모든 데이터베이스와 테이블을 볼 수 있도록 소유권을 복원해야 한다고 생각했습니다.

그러나 DBeaver를 사용하여 연결하려고 하면 다음과 같은 오류가 계속 발생합니다.

'./database1/' 디렉토리를 읽을 수 없습니다(errno: 13 "권한이 거부되었습니다")

누군가 docker 폴더의 권한을 설정하는 가장 좋은 방법과 모든 컨테이너가 제대로 작동하고 FTP로 파일을 편집할 수 있도록 변경해야 하는 기타 설정을 알려주실 수 있나요?

감사합니다!

답변1

컨테이너에는 컨테이너에서 사용되는 사용자의 디렉터리 소유권이 필요합니다. 이는 이미지에 따라 다르며, 컨테이너가 격리되어 있으므로 모든 작성자는 컨테이너에서 사용할 사용자를 선택할 수 있습니다.

실행하면 docker inspect containername구성에서 이를 찾을 수 있습니다.

"Config": {
         "User": "1001:1002",

chown 1001:1002이 경우 컨테이너의 애플리케이션은 사용자 1001 및 그룹 1002로 실행됩니다. 이를 위해서는 컨테이너에 볼륨으로 탑재한 폴더에서 실행해야 합니다 .

값이 User비어 있으면 루트로 실행됩니다. 이 경우 권한은 중요하지 않습니다.

관련 정보