1. 컨테이너 저장공간 설정
컨테이너 내부에서 사용되는 파일시스템의 크기는 도커의 스토리지 드라이버에 따라 조금씩 다릅니다.
예를 들어, AUFS나 overlay2 경우 컨테이너는 호스트와 저장 공간의 크기를 공유합니다.
[root@localhost ~]# docker info |grep -i storage
Storage Driver: overlay2
[root@localhost ~]# df -h
...
/dev/mapper/centos-root 8.0G 7.6G 455M 95% /
...
[root@localhost ~]# docker run -ti --name test1 ubuntu:18.04
root@80919a25da04:/# df -h
...
overlay 8.0G 7.6G 454M 95% /
/dev/mapper/centos-root 8.0G 7.6G 454M 95% /etc/hosts
...
위 예시에서는 호스트의 저장공간은 약 8G이며 컨테이너 또한 해당 저장공간을 그대로 사용합니다.
■ devicemapper에서의 컨테이너 저장 공간 설정
기본적으로 컨테이너는 10G의 저장 공간을 할당 받습니다.
[root@localhost ~]# docker info | grep -i Storage
WARNING: the devicemapper storage-driver is deprecated, and will be removed in a future release.
WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use.
Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
Storage Driver: devicemapper
devicemapper로 지정한 뒤 docker info 확인 시 권장되지 않는다는 경고문이 확인됩니다.
[root@localhost ~]# docker run -ti --name test2 ubuntu:18.04
Unable to find image 'ubuntu:18.04' locally
18.04: Pulling from library/ubuntu
4bbfd2c87b75: Pull complete
d2e110be24e1: Pull complete
889a7173dcfe: Pull complete
Digest: sha256:67b730ece0d34429b455c08124ffd444f021b81e06fa2d9cd0adaf0d0b875182
Status: Downloaded newer image for ubuntu:18.04
root@d4e4d7d610ca:/# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/docker-253:0-2229445-e172b54b4516b35011b56fde155cf03f275a9f93da5a2656e120f4ea0044a43a 10G 101M 9.9G 1% /
앞에 overlay2 일 때 ubuntu 이미지와 스토리지 드라이버가 달라 새로 받아오는 모습입니다.
이는 도커가 스토리지 드라이버별로 이미지, 컨테이너 파일을 저장하기 때문입니다.
이후 컨테이너 내부에서의 df 명령을 확인해보면 / 에 10G가 할당된 것을 볼 수 있습니다.
--storage-opt dm.basesize=20G
이런식으로 데몬 실행 시 위 옵션을 통해 컨테이너의 기본 저장 공간 크기를 설정할 수 있습니다.
아무런 설정을 하지 않았다면 이 값은 기본적으로 10G로 설정돼 있습니다.
또한 run 명령에서 --storage-opt size=20G 이런식으로도 설정할 수 있습니다.
■ overlay2에서의 컨테이너 저장 공간 설정
스토리지 드라이버가 overlay2이고, 도커 데이터가 저장되어 있는 디스크가 xfs 파일시스템인 경우 project quota 기능을 이용해 컨테이너의 저장 공간을 제한할 수 있습니다.
사용방법1) 서버에 디스크 새로 추가
사용방법2) 해당 디스크를 xfs 파일시스템으로 포맷하고 마운트
사용방법3) 도커 엔진의 데이터 저장경로를 xfs 파일시스템의 디렉토리로 변경
[mkfs.xfs /dev/디스크] 로 xfs 파일시스템 포맷진행 후 [mount /dev/디스크 '마운트포지션'] 으로 마운트합니다.
DOCKER_OPTS="--storage-driver=overlay2 --data-root=/home/data" 이런식의 옵션으로 데몬설정에 추가한 뒤 도커를 재시작 합니다.
docker run -ti --storage-opt size=1G ubuntu:18.40
위 같은 방법으로 저장 공간을 제한할 수 있습니다.
'docker' 카테고리의 다른 글
도커 컨테이너 다루기(13) - 도커 데몬 모니터링 (0) | 2021.06.09 |
---|---|
도커 컨테이너 다루기(11) - 도커데몬[2] (0) | 2021.06.08 |
도커 컨테이너 다루기(10) - 도커데몬[1] (0) | 2021.06.05 |
도커 컨테이너 다루기(9) - Dockerfile로 빌드할 때 주의할 점 (0) | 2021.06.04 |
도커 컨테이너 다루기(8) - 도커파일(Dockerfile)[2] (1) | 2021.06.03 |