이번 포스팅은 도커를 사용하면서
경험했던 트러블슈팅에 관한 포스팅입니다
1. 심볼릭 링크가 포함 된 폴더를 도커 공유폴더로 사용시
- 컨테이너 생성시 기존 연결 폴더와 함께 심볼릭링크 폴더로 연결을 해줘야 한다
- 공유폴더를 여러개 지정해야한다(심볼릭링크 포함)
$ docker run --name test -v /home/user:/home/user -v [심볼릭위치]:[심볼릭위치] [이미지이름]:[태그이름]
- 위와 같이 기존에 공유폴더를 -v 옵션으로 설정한다
- 그 다음 -v 옵션으로 공유폴더 속에 연결 된 심볼릭 링크가 있다면 원래 심볼릭 링크를 추가로 걸어준다
<참고링크>
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
'Docker & Kubernetes > Docker' 카테고리의 다른 글
[Docker-Compose] 도커 컴포즈 설치 및 사용 (2) | 2020.02.13 |
---|---|
[Docker] 도커로 딥러닝 환경 구축하기 (0) | 2019.10.15 |
[Docker] 도커허브에 이미지 배포하기 (0) | 2019.10.14 |
[Docker] Ubuntu 18.04 도커 시작하기 (2) | 2019.10.13 |