Skip to content

Instantly share code, notes, and snippets.

@hyunjun
Last active March 31, 2022 01:10
Show Gist options
  • Save hyunjun/ed1cdebcf982e30b2cc1b6c039f2d7b7 to your computer and use it in GitHub Desktop.
Save hyunjun/ed1cdebcf982e30b2cc1b6c039f2d7b7 to your computer and use it in GitHub Desktop.
Docker troubleshooting
  • 상황
    • stop을 하지 않고 kill을 먼저 하면 발생
    • docker rm 가 정상 동작하지 않고, image를 제거할 수 없음
    • Status에는 DeadRemoval In Progress가 뜸
  • Version
    • CentOS Linux release 7.3.1611 (Core) + docker-ce 17.03.1-ce, 17.06.1-ce, or 18.03.1-ce
  • 해결
    • docker version을 17.12.1-ce로 설치하면 발생하지 않음(검색하면 17.12이상이라고 하지만 위의 Version에서 썼듯 18.03에서도 발생)

      sudo systemctl docker stop
      sudo yum install docker-ce-17.12.1.ce-1.el7.centos
      sudo systemctl docker start
      
    • 문제가 발생했을 때는 docker container에 해당하는 process를 죽이거나 재시작 필요. kernel process가 포함되는 경우도 있어서 간단히 하기 어려움

    • docker image를 local build + Status가 Dead인 경우 /var/lib/docker/containers의 container id에 해당하는 file을 삭제해도 동작

      • docker image를 registry에서 받아서 실행한 경우는 이 방법도 통하지 않음
  • ref
  • 상황
    • apache flask docker를 build하고 run한 후 명령을 주면 Target WSGI script ... cannot be loaded as Python module error  * centos 7.3.1611, docker 17.03.1-ce, docker 사용 시 항상 sudo 사용중
  • 원인
    • -v로 volume을 연결했는데, permission 문제가 있었음
  • 해결
    • docker build
    • local directory가 없으면 mkdir logs_apache; touch logs_apache/api.log
    • docker run후 명령을 주기 전에 -v로 연결된 directory 권한 변경 root@aedb4e44734a:/var/www/apache-flask# chown -R www-data app/logs
  • ref
@hyunjun
Copy link
Author

hyunjun commented Mar 31, 2022

277535932_10160301285924766_1367785790377211734_n

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment