*Docker를 처음 시작해 보는 글이라 부족한 점이 많습니다*
이번 글에서는 도커를 사용해 보면서 사용했던 명령어들을 정리해 보도록 하겠습니다.
생각보다 많은 옵션들이 있어
사용해본 옵션들 위주로 정리해 보았습니다.
가장 먼저 Docker 이미지 관련 명령어들입니다.
이미지는 3가지 방법으로 만들 수 있습니다.
1. 도커허브에서 이미지를 받아올 수 있습니다.
각 페이지에 pull 명령어로 가져올 수 있습니다.
docker pull ubuntu
2. 이미지가 따로 save된 tar 파일을 이용해 이미지를 load 할 수 있습니다.
이미지 추출
docker save -o /mnt/c/Users/KETI09/Desktop/test_hello.tar hello:latest
이미지 저장
docker load -i /mnt/c/Users/KETI09/Desktop/test_hello.tar
3. 컨테이너를 이미지로 저장 할 수도 있습니다.
아래처럼 컨테이너 id를 이용해서 test:base 이미지를 생성할 수 있습니다.
docker commit 3ac694019bad test:base
이렇게 생성한 이미지들은 아래 명령어를 통해 확인가능하고
sudo docker images
아래 명령어를 통해 삭제 /관리 가능합니다.
docker rmi hello
다음은 Docker 컨테이너관련 명령어들입니다.
아래 명령어를 통해 컨테이너를 생성할 수 있습니다.
(컨테이너 이름 미지정시에는 랜덤 부여됩니다.)
sudo docker run --name [컨테이너 이름] [이미지이름:tag]
생성된 컨테이너는 아래 명령어로 확인 가능하며
#모든 컨테이너
sudo docker ps
# 실행중인 컨테이너
sudo docker ps-a
id, 베이스 이미지, 이름 등을 확인 할 수 있습니다.
생성된 컨테이너들은 아래의 명령어를 통해 실행, 종료, 삭제 가능합니다.
#hi 컨테이너 시작
docker start hi
#hi 컨테이너 재시작
docker restart hi
#컨테이너에 접속
docker attach hi
#hi 컨테이너 종료
docker stop hi
#hi 컨테이너 삭제
docker rm hi
docker rm -f hi # 강제삭제
#도커 cmd 명령어창 [620f470bfabb == id]
docker exec -it 20523fcddff3 /bin/bash
여기까지가 기본 컨테이너 구성!
더더 자세히
기본명령문에서 여러가지 옵션을 추가하여 다양한 컨테이너를 만들 수 있습니다.
제가 가장 많이 사용한 옵션은 - it 옵션과 /bin/bash입니다.
sudo docker run -it --name [이름] [이미지] /bin/bash
위 명령어로 컨테이너 생성시 바로 cmd 명령창으로 이동하여 컨테이너 내부 리눅스로 작업을 진행할 수 있습니다.
이 외에도
sudo docker run -it --privileged -p 10002:22 --gpus all -v /home/ketivrar/detr2:/home/shared_folder --name Det_11.8_10002 detectron2:cuda_11.8 /bin/bash
--privileged
시스템 내 장치 등 주요자원에 접근하기 위한 모드
--restart=always
종료와 동시에 재시작 되게끔하는 옵션
(docker stop [] 명령어는 유효 / docker 재부팅 시 자동실행 )
-p 9000:22
포트포워딩 하게끔 포트를 지정해주는 옵션
-v [실제주소]:[도커 내 주소]
두 디렉토리를 가상으로 연결시켜 주는 옵
ex) -v /home/ketivrar/Detectron_Linux:/home/shared_folder
--gpus
--gpus device=0
--gpus device=1
--gpus all
도커가 사용할 gpu를 할당해주는 명령어
--network
도커 네트워크를 지정하는 옵션
ex) --net=macvlan_network
--ip 192.168.1.19
특정 ip할당 옵션
--memory
--cpus
컨테이너의 사용메모리,cpu 할당 옵션
그리고 마지막으로 도커 명령어는 아니지만 docker의 상태를 조절할 수 있는 명령어들
systemctl
systemctl status docker
- 현재 도커 상태
systemctl restart docker
- 도커 재부팅
추가적인 내용은 아래블로그에서 더 찾아볼 수 있을 것 같습니다.
도커 네트워크와 볼륨(=공유 디렉토리)에 대한 내용은 추후에 다시 정리하겠습니다.
<도커 명령어>
틀린점이 있다면 댓 달아주세요!
'공부공부 > 2023 쌓여가는 나의 지식~' 카테고리의 다른 글
Docker 컨테이너 내부에서 모든 컨테이너 제어하기 (Docker socket) (0) | 2023.09.19 |
---|---|
ffmpeg를 이용한 영상 전송/ 변환 (windows/Linux) (0) | 2023.09.18 |
Docker container ssh로 연결해보기 (0) | 2023.09.12 |
ubuntu cuda toolkit 11.3 / 11.8 설치하기 (0) | 2023.09.11 |
Ubuntu20.04에서 Docker 시작 및 사용법(1) (0) | 2023.09.10 |
댓글