개요
Docker run 명령에 파라미터를 추가하여 컨테이너를 생성한다. 그 뒤에 해당 컨테이너의 옵션을 수정하고 싶은 경우 별다른 API가 없어 헤매는 경우가 있다. 이 경우 Docker에서 정식적인 방법을 제공하지 않는 것으로 보여 Docker 컨테이너와 데몬을 모두 종료하고 해당 컨테이너의 설정 파일을 수정한 후 재시작하는 것이 잘 알려져 있다.
컨테이너를 사용하면서 공유 메모리(Shared memory)가 부족하다는 경고가 발생하는 등 기존 컨테이너 생성시 잡아두었던 기본값을 조정해야 할 필요가 생긴다. free 명령을 통해 shm 수치를 모니터링해보면 기본값으로 64MB가 잡혀져 있는 것을 볼 수 있다. 본 시나리오를 바탕으로 기본 옵션을 변경하는 과정을 설명한다.
docker update
1개 이상의 컨테이너의 구성을 컨테이너가 실행 중인 상태에서 변경할 수 있다.
docker update [OPTIONS] CONTAINER [CONTAINER...]
예를 들어, restart 옵션을 변경하고 싶다면, 다음 명령을 활용하면 된다. 참조 기술문서
docker update --restart=on-failure:3 abebf7571666 hopeful_morse
컨테이너 속성 변경
모든 컨테이너를 종료한 후 데몬을 종료한다.
systemctl stop docker
변경하려는 컨테이너의 ID 값을 기준으로 다음 경로의 파일을 연다.
vi /var/lib/docker/containers/[container_id]/hostconfig.json
VSCode의 포맷팅 기능(Alt Shift F)과 줄 라인(Join lines) 명령을 활용하여 json 파일을 수정하고 다시 압축(minify)한다.
수정이 다 되었으면 데몬을 재실행한다.
systemctl start docker