본문 바로가기

Docker & Kubernetes/Docker

[Trouble Shooting] 도커 사용시 문제 발생 및 해결

반응형

이번 포스팅은 도커를 사용하면서

경험했던 트러블슈팅에 관한 포스팅입니다

 

 

 

 

1. 심볼릭 링크가 포함 된 폴더를 도커 공유폴더로 사용시

- 컨테이너 생성시 기존 연결 폴더와 함께 심볼릭링크 폴더로 연결을 해줘야 한다

- 공유폴더를 여러개 지정해야한다(심볼릭링크 포함)

$ docker run --name test -v /home/user:/home/user -v [심볼릭위치]:[심볼릭위치] [이미지이름]:[태그이름]

- 위와 같이 기존에 공유폴더를 -v 옵션으로 설정한다

- 그 다음 -v 옵션으로 공유폴더 속에 연결 된 심볼릭 링크가 있다면 원래 심볼릭 링크를 추가로 걸어준다

 

<참고링크>

https://stackoverflow.com/questions/38485607/mount-host-directory-with-a-symbolic-link-inside-in-docker-container

 

Mount host directory with a symbolic link inside in docker container

I mounted the container with this parameter: -v /home/test/:/home/test Inside /home/test in the host there is a symbolic link pointing to a /mnt/ folder. But that link, although can be seen wh...

stackoverflow.com

 

 

2. 컨테이너 내부 통신 시 공유메모리 부족 에러

- 따로 추가 설정을 하지 않을 시 기본 --shm-size = 4mb이다

- 기본 설정으로 딥러닝 모델 학습시 아래와 같은 insufficient shared memory 에러 발생

 

[ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory]

에러 발생 시 화면

- 도커 컨테이너 안에서 딥러닝 모델을 학습시키기 위해 부족한 공유메모리를 재 설정 해줘야함

- 여기서는 --shm-size=8G 로 설정

$ docker run --name deepmodel -ti --shm-size=8G -v [공유파일설정] [이미지_이름]:[이미지_태그]

- 위와 같이 재 설정 해주면 에러 없이 실행 가능

 

 

3. No space left on device 에러

- 이미지를 가져오는 도중 아래와 같은 에러가 발생 할 경우 (저장공간 부족)

 

에러 발생 화면

- 아래 해결법 말고 기존에 사용하지 않는 컨테이너나 이미지를 제거 해주는 등 간편한 방법도 존재하나,

밑에서 제시하는 방법은 일시적인 해결 법이 아닌 볼륨이 많은 곳으로 도커 볼륨을 이동해서 저장 공간 제약 없이 사용할 수 있는 해결법

 

 

< 아래 해결법 : 도커 볼륨을 다른 디스크로 이동>

$ systemctl stop docker

- 도커 시스템 중지

 

$ mv docker /mnt/

- 도커 폴더 자체를 추가 디스크 공간이 있다면 그곳으로 이동 (여유 공간이 많은 곳)

 

ln -s /mnt/docker /var/lib/docker

- 심볼릭 링크 연결

 

$ systemctl restart docker

- 도커 재시작

 

 

4. Permission ERROR

- 도커 사용시 권한 에러 발생 (사용자 추가)

$ sudo usermod -aG docker $USER

$ sudo service docker start

$ sudo chmod 666 /var/run/docker.sock

 

반응형