Docker

[docker] docker package 업그레이드 이후 실행이 안되는 문제 (graph)

채윤아빠 2024. 9. 11. 13:33

증상 및 문제점

우분투에서 apt 명령을 이용하여 docker 업그레이드 후, 다음과 같은 오류가 발생하며 docker 데몬 서비스가 정상적으로 실행되지 않았습니다.

Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
invoke-rc.d: initscript docker, action "restart" failed.
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Tue 2024-09-24 12:16:07 KST; 5ms ago
     Docs: https://docs.docker.com
  Process: 16640 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
 Main PID: 16640 (code=exited, status=1/FAILURE)

Sep 10 12:16:07 hbesthee-40193 systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
Sep 10 12:16:07 hbesthee-40193 systemd[1]: Failed to start Docker Application Container Engine.
Sep 10 12:16:07 hbesthee-40193 systemd[1]: docker.service: Unit entered failed state.
Sep 10 12:16:07 hbesthee-40193 systemd[1]: docker.service: Failed with result 'exit-code'.
dpkg: error processing package docker-ce (--configure):
 subprocess installed post-installation script returned error exit status 1

 

운용 환경

CPU AMD FX(tm)-8300
RAM 2 GB
OS Ubuntu 16.04.7
docker 20.10.8~3-0

원인 분석

docker 서비스 데몬의 상태 정보를 확인해 보니 다음과 같은 정보를 표시하였습니다.

$ systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: failed (Result: start-limit-hit) since Tue 2024-09-24 12:16:16 KST; 9min ago
     Docs: https://docs.docker.com
  Process: 16756 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1
 Main PID: 16756 (code=exited, status=1/FAILURE)

Sep 10 12:16:14 hbesthee-40193 systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
Sep 10 12:16:14 hbesthee-40193 systemd[1]: Failed to start Docker Application Container Engine.
Sep 10 12:16:14 hbesthee-40193 systemd[1]: docker.service: Unit entered failed state.
Sep 10 12:16:14 hbesthee-40193 systemd[1]: docker.service: Failed with result 'exit-code'.
Sep 10 12:16:16 hbesthee-40193 systemd[1]: docker.service: Service hold-off time over, scheduling restart.
Sep 10 12:16:16 hbesthee-40193 systemd[1]: Stopped Docker Application Container Engine.
Sep 10 12:16:16 hbesthee-40193 systemd[1]: docker.service: Start request repeated too quickly.
Sep 10 12:16:16 hbesthee-40193 systemd[1]: Failed to start Docker Application Container Engine.
Sep 10 12:16:16 hbesthee-40193 systemd[1]: docker.service: Unit entered failed state.
Sep 10 12:16:16 hbesthee-40193 systemd[1]: docker.service: Failed with result 'start-limit-hit'.

 

"/var/log/syslog" 파일에 다음과 같은 로그를 확인할 수 있었습니다.

Sep 10 12:16:14 hbesthee-40193 systemd[1]: Starting Docker Application Container Engine...
Sep 10 12:16:14 hbesthee-40193 dockerd[16756]: unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives don't match any configuration option: graph
Sep 10 12:16:14 hbesthee-40193 systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
Sep 10 12:16:14 hbesthee-40193 systemd[1]: Failed to start Docker Application Container Engine.
Sep 10 12:16:14 hbesthee-40193 systemd[1]: docker.service: Unit entered failed state.
Sep 10 12:16:14 hbesthee-40193 systemd[1]: docker.service: Failed with result 'exit-code'.

해결 방법

"/etc/docker/daemon.json" 파일의 설정은 다음과 같았습니다.

$ cat /etc/docker/daemon.json
{
    "graph": "/home/docker"
}

과거 버전에서 호환되던 "graph" 설정을 이용하여 docker의 루트 폴더를 설정하여 docker 서비스의 실행이 실패하였습니다.

 

다음과 같이 "data-root" 수정 후, docker 서비스가 정상적으로 실행되었습니다.

$ cat /etc/docker/daemon.json
{
    "data-root": "/home/docker"
}




728x90
반응형