
docker build
루트 권한 없이 도커 이미지를 만들고 싶습니다 .
나는 따라 갔다공식 문서docker image ls
사용자 네임스페이스 재매핑을 설정하려고 했는데 (or docker build -t myapp .
또는 ) 를 실행하면 docker run hello-world
다음 오류가 표시됩니다.
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json": dial unix /var/run/docker.sock: connect: permission denied
섹션의 지침을 따르세요.데몬에서 userns-remap 활성화, 및 에서 이 사용자에 대한 범위를 구성 "userns-remap": "default"
하고 생성 했습니다 ./etc/docker/daemon.json
/etc/subuid
/etc/subgid
docker 데몬이 실행 중이고 systemd를 통해 시작되었으며 로그 파일에는 사용자에 대해 네임스페이스가 활성화되어 있음이 표시됩니다 dockremap
.
level=info msg="User namespaces: ID ranges will be mapped to subuid/subgid ranges of: dockremap"
level=info msg="[graphdriver] using prior storage driver: overlay2"
level=info msg="Loading containers: start."
level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
level=info msg="Loading containers: done."
level=warning msg="Not using native diff for overlay2, this may cause degraded performance for building images: kernel has CONFIG_OVERLAY_FS_REDIRECT_DIR enabled" storage-driver=overlay2
level=info msg="Docker daemon" commit=659604f9ee graphdriver=overlay2 version=24.0.2
level=info msg="Daemon has completed initialization"
level=info msg="API listen on /run/docker.sock"
Started Docker Application Container Engine.
그러나 이제 일반 사용자로서 docker 명령을 실행하면 위에 표시된 권한 오류가 발생합니다.
오류에 언급된 파일에 대한 권한:
0 srw-rw---- 1 root docker 0 Jul 14 13:35 /var/run/docker.sock
제가 지침을 잘못 이해해서 사용자가 docker 명령을 실행해야 합니까 dockremap
? 그러나 다음은 아무것도 출력하지 않습니다: sudo su dockremap -c "docker image ls"
. 또한 dockremap
비밀번호를 설정한 후에도 사용자 로 로그인할 수 없습니다 .
그래서 내 질문은 다음과 같습니다. 설명서의 설정을 따른 후에 무엇을 기대해야 하며, docker
특히 이미지를 빌드하기 위해 루트 없이 명령을 어떻게 사용할 수 있습니까?