가상화/docker
docker 설치 후 service 시작 실패
dev-note
2018. 5. 28. 13:04
버전
CentOS Linux release 7.0.1406 (Core)
Docker version 18.05.0-ce, build f150324
증상
xxxxxxxxxx
$ systemctl start docker
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
$ vi /var/log/message
...
May 28 02:56:54 localhost dockerd: time="2018-05-28T02:56:54.381795824Z" level=info msg="Creating filesystem xfs on device docker-253:1-67456729-base, mkfs args: [-m crc=0,finobt=0 /dev/mapper/docker-253:1-67456729-base]" storage-driver=devicemapper
May 28 02:56:54 localhost dockerd: time="2018-05-28T02:56:54.383899142Z" level=info msg="Error while creating filesystem xfs on device docker-253:1-67456729-base: exit status 1" storage-driver=devicemapper
May 28 02:56:54 localhost dockerd: time="2018-05-28T02:56:54.384003036Z" level=warning msg="Failed to deactivatePool: Device is Busy" storage-driver=devicemapper
May 28 02:56:54 localhost dockerd: Error starting daemon: error initializing graphdriver: exit status 1
May 28 02:56:54 localhost systemd: docker.service: main process exited, code=exited, status=1/FAILURE
May 28 02:56:54 localhost systemd: Failed to start Docker Application Container Engine.
May 28 02:56:54 localhost systemd: Unit docker.service entered failed state.
May 28 02:56:54 localhost systemd: docker.service failed.
분석
문제의 로그
May 28 02:56:54 localhost dockerd: time="2018-05-28T02:56:54.381795824Z" level=info msg="Creating filesystem xfs on device docker-253:1-67456729-base, mkfs args: [-m crc=0,finobt=0 /dev/mapper/docker-253:1-67456729-base]
mkfs 명령에서 문제가 발생한 듯
xxxxxxxxxx
$ mkfs.xfs -m crc=0,finobt=0 /dev/mapper/docker-253:1-67456729-base
unknown option -m finobt=0
Usage: mkfs.xfs
/* blocksize */ [-b log=n|size=num]
/* metadata */ [-m crc=[0|1]
/* data subvol */ [-d agcount=n,agsize=n,file,name=xxx,size=num,
(sunit=value,swidth=value|su=num,sw=num|noalign),
sectlog=n|sectsize=num
/* force overwrite */ [-f]
/* inode size */ [-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2,
projid32bit=0|1]
/* no discard */ [-K]
/* log subvol */ [-l agnum=n,internal,size=num,logdev=xxx,version=n
sunit=value|su=num,sectlog=n|sectsize=num,
lazy-count=0|1]
/* label */ [-L label (maximum 12 characters)]
/* naming */ [-n log=n|size=num,version=2|ci,ftype=0|1]
/* no-op info only */ [-N]
/* prototype file */ [-p fname]
/* quiet */ [-q]
/* realtime subvol */ [-r extsize=num,size=num,rtdev=xxx]
/* sectorsize */ [-s log=n|size=num]
/* version */ [-V]
devicename
<devicename> is required unless -d name=xxx is given.
<num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB),
xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB).
<value> is xxx (512 byte blocks).
$ mkfs.xfs -V
mkfs.xfs version 3.2.0-alpha2
-m 옵션의 finobt 를 인식하지 못 함
패키지 업데이트
xxxxxxxxxx
$ yum update xfsprogs
...
$ mkfs.xfs
no device name given in argument list
Usage: mkfs.xfs
/* blocksize */ [-b log=n|size=num]
/* metadata */ [-m crc=0|1,finobt=0|1,uuid=xxx]
/* data subvol */ [-d agcount=n,agsize=n,file,name=xxx,size=num,
(sunit=value,swidth=value|su=num,sw=num|noalign),
sectlog=n|sectsize=num
/* force overwrite */ [-f]
/* inode size */ [-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2,
projid32bit=0|1]
/* no discard */ [-K]
/* log subvol */ [-l agnum=n,internal,size=num,logdev=xxx,version=n
sunit=value|su=num,sectlog=n|sectsize=num,
lazy-count=0|1]
/* label */ [-L label (maximum 12 characters)]
/* naming */ [-n log=n|size=num,version=2|ci,ftype=0|1]
/* no-op info only */ [-N]
/* prototype file */ [-p fname]
/* quiet */ [-q]
/* realtime subvol */ [-r extsize=num,size=num,rtdev=xxx]
/* sectorsize */ [-s log=n|size=num]
/* version */ [-V]
devicename
<devicename> is required unless -d name=xxx is given.
<num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB),
xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB).
<value> is xxx (512 byte blocks).
$ mkfs.xfs -V
mkfs.xfs version 4.5.0
문제의 옵션이 생김
docker 재시작
xxxxxxxxxx
$ systemctl start docker
$ systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since 월 2018-05-28 03:54:12 UTC; 34min ago
...