source

도커, 볼륨을 읽기 전용으로 마운트

lovecheck 2023. 9. 19. 21:14
반응형

도커, 볼륨을 읽기 전용으로 마운트

저는 도커와 함께 작업하고 있는데, 많이 바뀌는 동적 폴더를 마운트하고 싶습니다(따라서 실행할 때마다 도커 이미지를 만들 필요가 없고 비용이 많이 들 것입니다). 하지만 해당 폴더는 읽기 전용이어야 합니다.폴더 소유자를 다른 사용자로 변경하면 됩니다.하지만,chown요망하는root애플리케이션에 노출되지 않았으면 하는 액세스.

사용할때-vflag to mount, 내가 주는 사용자 이름이 무엇이든 간에, 나는 도커 이미지 안에 non-root 사용자를 만들었지만, 도커를 실행한 사용자가 소유자인 볼륨의 모든 파일이 명령줄에서 내가 주는 사용자로 변경되어 읽기 전용 파일과 폴더를 만들 수 없습니다.어떻게 하면 이걸 막을 수 있을까요?

저도 추가했습니다.mustafa ALL=(docker) NOPASSWD: /usr/bin/docker, 그래서 터미널을 통해 다른 사용자로 변경할 수 있었지만, 파일에는 내 사용자에 대한 권한이 있습니다.

다음을 추가하여 볼륨을 읽기 전용으로 지정할 수 있습니다.:ro에게-v스위치:

docker run -v volume-name:/path/in/container:ro my/image

그러면 폴더는 컨테이너에서 읽기 전용으로 호스트에서 읽기-쓰기됩니다.

2018 편집

볼륨 사용 설명서에 따르면 이제 볼륨을 마운트하는 다른 방법이 있습니다.--mount스위치를 바꾸다읽기 전용으로 이를 활용하는 방법은 다음과 같습니다.

$ docker run --mount source=volume-name,destination=/path/in/container,readonly my/image

도커-

다음은 읽기 전용 컨테이너를 지정하는 방법에 대한 예입니다.docker-compose:

version: "3"
services:
  redis:
    image: redis:alpine
    read_only: true

도커-

다음은 읽기 전용 볼륨을 지정하는 적절한 방법입니다.docker-compose:

장문법

version: "3.2" # Use version 3.2 or above
services:
  my_service:
    image: my:image
    volumes:
      - type: volume
        source: volume-name
        target: /path/in/container
        read_only: true
volumes:
  volume-name:

https://docs.docker.com/compose/compose-file/compose-file-v3/ #롱-syntax-3

단문법

더하다:ro볼륨 마운트 정의:

version: "3.0" # Use version 3.0 or above
services:
  my_service:
    image: my:image
    volumes:
      - /path/on/host:/path/inside/container:ro

https://docs.docker.com/compose/compose-file/compose-file-v3/ #짧은syntax-3

언급URL : https://stackoverflow.com/questions/19158810/docker-mount-volumes-as-readonly

반응형