도커 구성 볼륨 사용 권한 리눅스
도커 컨테이너에서 워드프레스를 실행하려고 합니다.docker-compose.yaml파일은 다음과 같습니다.
version: "2"
services:
my-wpdb:
image: mariadb
ports:
- "8081:3306"
environment:
MYSQL_ROOT_PASSWORD: ChangeMeIfYouWant
my-wp:
image: wordpress
volumes:
- ./:/var/www/html
ports:
- "8080:80"
links:
- my-wpdb:mysql
environment:
WORDPRESS_DB_PASSWORD: ChangeMeIfYouWant
도커 구조를 구축하면 볼륨이 마운트되지만 루트에 속합니다.
나는 그것을 바꾸려고 했다:
my-wp:
image: wordpress
user: 1000:1000 # added
volumes:
- ./:/var/www/html
ports:
- "8080:80"
links:
- my-wpdb:mysql
environment:
WORDPRESS_DB_PASSWORD: ChangeMeIfYouWant
이제 파일을 편집할 수 있습니다.하지만 그 컨테이너는 더 이상 웹사이트에 서비스를 제공하지 않습니다.
이 허가 문제를 해결하는 올바른 방법은 무엇입니까?
도커 구성 및 도커 실행 참조에 따르면user옵션은 컨테이너에서 실행 중인 프로세스의 사용자 ID(및 그룹 ID)를 설정합니다.이 설정을 하면1000:1000웹 서버가 포트 80에 바인드할 수 없게 되었습니다.1024 미만의 포트에 바인딩하려면 루트 권한이 필요합니다.즉, 추가된 파일을 삭제해야 합니다.user: 1000:1000스테이트먼트를 다시 입력합니다.
공유 볼륨에 대한 권한 문제를 해결하려면 디렉터리의 소유권을 변경해야 합니다.달려.chown 1000:1000 /path/to/volume이 작업은 컨테이너 내부 또는 호스트 시스템에서 직접 실행할 수 있습니다.변경은 지속적이고 즉시 유효합니다(컨테이너를 재시작할 필요가 없습니다).
일반적으로 볼륨은 서브디렉토리에 있어야 합니다.
volumes:
- ./public:/var/www/html
올바른 사용자가 소유하는지 확인합니다../public컨테이너를 시작하고 디렉토리가 존재하지 않으면 도커가 대신 작성합니다.이 경우 디렉토리는 다음 사용자가 소유자입니다.root위에서 설명한 대로 수동으로 소유권을 변경해야 합니다.
또는 웹 서버를 권한 없는 사용자로 실행할 수도 있습니다(user: 1000:1000)는 서버가 포트 8080을 리슨하고 루팅을 로 변경합니다.
ports:
- "8080:8080"
같은 질문에 답변한 경우 도킹 스테이션의 루트 사용자를 사용하여 모든 권한을 얻습니다.
예:-
node-app:
container_name: node-app
image: node
user: root
volumes:
- ./:/home/node/app
- ./node_modules:/home/node/app/node_modules
- ./.env.docker:/home/node/app/.env
메모:- user:root = > 에서는 볼륨의 완전한 권한을 부여합니다.
Google Cloud 쉘을 사용하던 중 다음 명령을 통해 WordPress 도커 컨테이너에서 FTP 파일 액세스를 사용할 수 있는 올바른 권한이 사용되도록 설정되었습니다.
sudo chmod 644 -R wordpress-docker-compose
언급URL : https://stackoverflow.com/questions/52917695/docker-compose-volume-permissions-linux
'programing' 카테고리의 다른 글
| add_filter('wp_title')는 타이틀 태그(WordPress 플러그인)를 대체하지 않습니다. (0) | 2023.02.11 |
|---|---|
| 리액트 라우터가 404 상태 코드로 응답하도록 하려면 어떻게 해야 합니까? (0) | 2023.02.11 |
| 이 경고 메시지는 무엇을 의미합니까?'img 요소에는 의미 있는 텍스트가 포함된 alt 소품이나 장식 이미지용 빈 문자열이 있어야 합니다.' (0) | 2023.02.11 |
| AJAX만의 루트를 제한할 수 있습니까? (0) | 2023.02.11 |
| 하나 이상의 어레이가 비어 있으면 merge_array가 null을 반환합니까? (0) | 2023.02.11 |