Docker 재시작이 필요했던 이유
1. 기존에 사용하던 컨테이너에서 nvidia-smi 명령어가 먹지 않는 문제 발생
Failed to initialize NVML: Unknown Error
https://stackoverflow.com/questions/72932940/failed-to-initialize-nvml-unknown-error-in-docker-after-few-hours
2. DataLoader 의 shared memory가 부족
RuntimeError: DataLoader worker (pid 1838517) is killed by signal: Bus error. It is possible that dataloader's workers are out of shared memory.
2-1. Docker run command에 --ipc=host argument를 추가
: 해당 명령어는 따로 지정된 것이 아닌 host의 shared memory를 사용하기 위한 명령어
2-2. Host의 shared memory를 늘려주기 위해서는 의 /dev/shm 사이즈를 키워줄 필요성이 있다
vi /etc/fstab
위 명령어를 통해 /dev/shm 의 default 값이 정의되어 있다면 원하는 값으로 변경한다.
이후 하기 명령어를 통해 리마운트 적용
mount -o remount /dev/shm
적용된 값은 하기 명령어로 확인 가능하다.
df -h
Docker Export (Container → tar)
- 기존에 올려놓은 Container를 tar 파일로 변경하기 위한 명령어
$ docker export [container ID 또는 이름] > [파일이름].tar
Docker Import (tar → Image)
- Export로 생성한 tar 파일을 다시 Docker Image로 생성하기 위한 명령어
cat [tar 파일] | docker image import - [repository]:[tag]
Save/Load 와의 차이
- Import/Export, Save/Load는 각각 짝을 이루며 Save는 image를 tar로 변환하는 명령어
Issues
- docker: Error response from daemon: No command specified.
- Import/Export 방식은 clean하게 tar파일을 만들어주지만 메타 정보를 저장하지 않는 방식이라 entrypoint 정보가 없다.
- Entrypoint 정보를 docker run argument에 추가해주어야 한다.
- VS code running Container에서 ctrl+p, ctrl+q로 detach가 되지 않는 경우
- --detach-keys "[key 조합]"을 정의하여 주면 된다.
Ex)
nvidia-docker run --gpus '"device=5"' --detach-keys "ctrl-d,_" -it -p 30500:8888 -v /data/home/junho1126/.ssh:/root/.ssh -v /data/home/junho1126/dockerImg:/home/py --ipc="host" --rm "junho1126:cuda11.1_0.1" /bin/bash
'메뉴얼' 카테고리의 다른 글
docker image와 container 정지/삭제 (0) | 2024.11.08 |
---|---|
Docker image와 container 생성 (0) | 2023.01.03 |
SSH를 통한 서버 접속 (0) | 2023.01.03 |