Knowhow/Docker

자주 사용하는 Docker command, argument 정리

침닦는수건 2023. 1. 5. 11:52
반응형

Docker는 개념부터 시작하면 복잡하고 그 내용을 전부 정리하면 두께가 엄청나지만 실제로 사용하는 내용은 적다. 일반적으로 복잡한 일을 할 때보다 대충 환경 설정 귀찮아서 이미지 받은 뒤 컨테이너 만들어서 편하게 해보려고 쓰는 경우가 많기 때문에 쓰는 command와 argument (편의 상 태그라고 하겠다.) 만 쓰는 경우가 많다. 

 

최소로 외워둘 커맨드

  • docker images : 받은 이미지 리스트 출력.
  • docker ps -a : 현재 컨테이너 리스트 출력.
  • docker rm CONTAINER_NAME : 컨테이너 삭제. --rm 태그 빼먹었을 때 자주 씀.
  • docker rmi IMAGE_NAME:TAG : 이미지 삭제.
  • docker start CONTAINER_NAME : 컨테이너 켜기.
  • docker attach CONTAINER_NAME : 컨테이너로 들어가기.
  • docker stop CONTAINER_NAME : 컨테이너 끄기. 터미널 닫아서 끄지 맙시다.

 

최소로 외워둘 태그

  • -v <PATH_IN_LOCAL>:<PATH_IN_CONTAINER> : 로컬 PC의 특정 디렉토리와 컨테이너 내 특정 디렉토리를 연결.
  • -it : interative mode. 실행용 docker 아니고 환경용 docker로 쓸 경우. 터미널을 써야할 경우.
  • --rm : 종료 시 컨테이너 사라짐. 처음 만들어서 테스트할 때나 디버깅할 때 유용.
  • --name <CONTAINER_NAME> : 컨테이너 이름짓기. 안 해두면 나중에 찾기 힘들고 start/attach가 귀찮아짐.
  • --privileged : 시스템 주요 자원에 접근할 수 있는 권한 부여. 장비 접근, 네트워크 인터페이스의 활성화/비활성화, IP 주소 변경 등. 카메라나 센서 써야되면 추가.
  • --gpus <DEVICE ID> : gpu 접근 허용. 딥러닝하거나 cuda 써야할 경우 사용함. 맘편하게 ID 대신 all 쓰는게 좋음.
  • -p <LOCAL_PORT>:<CONTAINER_PORT> : 로컬 PC IP와 컨테이너 IP 연결. TCP/IP 통신해야 할 경우, 사용할 포트 번호 맞춰서 추가. 정해진 포트 쓰는 경우도 있으니 유의. 

 

알고 있으면 좋을 태그

  • -v /tmp/.X11-unix:/tmp/.X11-unix:ro : 호스트의 x윈도우와 컨테이너의 윈도우를 연결. GUI나 이미지 띄우고 싶을 때 1.
  • --env DISPLAY=$DISPLAY : GUI나 이미지 띄우고 싶을 때 2.
  • --env "QT_X11_NO_MITSHM=1" : GUI나 이미지 띄우고 싶을 때 3.
  • docker rmi $(docker images -f "dangling=true" -q) : <none> 이미지들 한 번에 지울 때.

 

위의 내용만 외우고 있으면 매번 검색하는 횟수를 엄청 줄일 수 있다. 그냥 모르면 다 추가하면 된다. 전혀 문제될 것 없는 최소 태그들이다. 

반응형