티스토리 뷰

https://blog.naver.com/kdheejb7/222167411706

 

[Docker] 현재 컨테이너에 옵션 추가하기

현재 사용하고 있는 컨테이너에 ipc옵션을 추가해야할 일이 생겨서 어떻게 추가하는지 알아봤다. 내가 현재...

blog.naver.com

제 블로그의 글을 옮겨오는 중입니다.. 

 

현재 사용하고 있는 컨테이너에 ipc옵션을 추가해야할 일이 생겨서 어떻게 추가하는지 알아봤다.

 

내가 현재 컨테이너를 만들 때 쓴 명령어는

docker run -it --gpus all -v [Mount 시킬 내 local 폴더]:[Mount될 container 폴더] bb83 /bin/bash
 

-it 옵션, --gpus 옵션, --volume 옵션을 주었다.

 

근데 실행하다보니까 shared memory가 부족하다고 에러가 떴다.

It is possible that dataloader's workers are out of shared memory. Please try to
 raise your shared memory limit.                                              
 

docker container에 shared memory 설정을 어떻게 하나 찾아보니

 

docker container에 -ipc=host 옵션을 주면 된다고 했다.

 

그러나, 옵션을 줘서 run하려면..음.. 도커 컨테이너를 새로 만들어야하고, 그러면 도커 컨테이너 안에서 내가 했던 작업들이 사라지기 때문에 방법을 찾아봤다.

 

 

1. docker commit

docker commit [현재 컨테이너 이름 혹은 아이디] [새로운 이름]
 

현재 컨테이너 상태를 그대로 이미지로 저장해준다.

큰 이미지를 사용한 컨테이너였다면 이 작업 또한 꽤 오래 걸린다.

새로운 이미지를 만드는 작업이기 때문에.

 

기다려서 이 command가 끝난 후, docker images로 image의 목록을 보면

아까 지정한 새로운 이름으로 docker image가 생성되었음을 알 수 있다.

 

2. docker run

새로 만든 이미지를 사용하여 추가할 옵션 및 "원래 사용하고 있던 옵션"까지 줘서 docker run을 시킨다.

처음에 -ipc=host 만 줬다가 nvidia-smi도 안되고 volume mount가 하나도 안되어있어서 깜짝 놀랐지만 놀란 맘을 추스리고 다시 모든 옵션을 추가하여 docker run 시켜주니 정상적으로 내가 원하는 작업이 실행되었다.

 

docker run -it -ipc=host --gpus all -v [Mount 시킬 내 local 폴더]:[Mount될 container 폴더] bb83 /bin/bash
 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함