docker run 실행 시 --storage-opt size=OOG로 하여 rootfs의 사이즈를 조정할 수 있다.
-------------------------------------------------------------------------------------------------------------------
아래는 이미 run한 상태의 docker 이미지의 사이즈를 조정하는 방법
기본적으로 Docker 이미지에는 10G의 공간이 할당되는데, 이 영역을 조정해야 하는 경우가 있다.
우선 Docker 이미지를 다운로드하거나 build한 후에 docker run 명령을 통해 해당 컨테이너를 실행한다.
그리고 나서 /dev/mapper 경로로 이동하여, ls -l 명령으로 정보를 보면 아래와 같이
방금 실행한 컨테이너의 디바이스 정보가 생성되어 있다.
# ls -l /dev/mapper
.... docker-253:9-33555456-b52e89c883463c78dba60b705eb431cd30fbb3de23703528df413452e6e39158 -> ../dm-12
그러면 다음과 같은 명령으로 device-mapper 테이블에서 해당 디바이스의 정보를 확인한다
# dmsetup table docker-253:9-33555456-b52e89c883463c78dba60b705eb431cd30fbb3de23703528df413452e6e39158
0 20971520 thin 253:11 42
여기서 20971520 값은 10G를 512Byte로 표현한 값이다.
그 값을 실제 증설하고자 하는 크기로 변경해야 하며, 아래와 같은 방식으로 입력하면 된다.
# echo 0 31457280 thin 253:11 42 | dmsetup load docker-253:9-33555456-b52e89c883463c78dba60b705eb431cd30fbb3de23703528df413452e6e39158
# dmsetup table docker-253:9-33555456-b52e89c883463c78dba60b705eb431cd30fbb3de23703528df413452e6e39158 // 확인
# dmsetup resume docker-253:9-33555456-b52e89c883463c78dba60b705eb431cd30fbb3de23703528df413452e6e39158
마지막으로 디바이스의 정보를 갱신한 후, 해당 디바이스의 FS를 늘려주는 작업을 진행해야 한다
# resize2fs docker-253:9-33555456-b52e89c883463c78dba60b705eb431cd30fbb3de23703528df413452e6e39158 // RHEL 6
# xfs_growfs docker-253\:9-33555456-b52e89c883463c78dba60b705eb431cd30fbb3de23703528df413452e6e39158 // RHEL 7
단, 아래와 같이 docker 이미지를 저장해도, 해당 docker 이미지는 종료 후 다시 로드하면 초기화된다.
# docker commit f6cf11f6ca65 base/centos7:cuda8.0-cudnn5