도커 컨테이너 안에있는 구성 파일을 변경하려고합니다.도커 컨테이너에 sed 명령 실행
docker exec container_name sed -ire '/URL_BASE = /c\api.myapiurl' tmp/config.ini
로컬로이 sed 명령을 실행해도 문제가 없지만 컨테이너에서 실행하려고하면 다음 오류 메시지가 나타납니다.
sed: cannot rename tmp/config.ini: Operation not permitted
은 내가해야 할 것은 'config.ini 파일'에서 'URL_BASE ='을 대체 전에 내 서버에 컨테이너를 배치합니다.
sed 명령이 파일 이름 바꾸기를 시도하는 이유를 모르겠습니다.
아이디어가 있으십니까?
나는 내가 --privileged 플래그를 실행하려고
을 시도했지만 작동하지 않았다 무엇. chmod를 사용하여 파일 사용 권한을 변경하려고했으나 같은 이유로 허가를받을 수 없었습니다.docker exec --privileged container_name sed -ire '/URL_BASE = /c\api.myapiurl' tmp/config.ini
Result: sed: cannot rename tmp/config.ini: Operation not permitted
chmod를
docker exec --privileged container_name chmod 755 tmp/config.ini
Result: chmod: changing permissions of 'tmp/config.ini': Operation not permitted
나는 또한 고정 표시기 전에 sudo를 함께 실행하지만 중 하나가 작동하지 않았다 시도
.
문자열을 바꿀 올바른 명령입니까? 'docker run -it bash'를 실행 한 다음'sed <...>' –
n2o
을 실행하면 파일의 복사본을 생성 한 다음 원본으로 대체하여 작동합니다. 문제는 관리자 권한으로 컨테이너 내부에 파일을 만들었지 만 나중에 다른 사용자로 이동했기 때문입니다. 따라서 exec를 수행 할 때마다 관리자가 아닌 사용자로 해당 명령을 입력하게됩니다. Dockerfile을 보여주세요. 'docker exec container_name whoami'와'docker exec container_name ls -l tmp/config.ini'를 입력하면이를 확인할 수 있습니다. –