본문 바로가기
공부공부/2023 쌓여가는 나의 지식~

Ubuntu20.04에서 Docker 시작 및 사용법(2) [명령어]

by Lee_story_.. 2023. 9. 13.
728x90

 

*Docker를 처음 시작해 보는 글이라 부족한 점이 많습니다*

 

 

이번 글에서는 도커를 사용해 보면서 사용했던 명령어들을 정리해 보도록 하겠습니다.

 

 

생각보다 많은 옵션들이 있어

사용해본 옵션들 위주로 정리해 보았습니다.

 

 

 

가장 먼저 Docker 이미지 관련 명령어들입니다.  

 

이미지는 3가지 방법으로 만들 수 있습니다.

 

1. 도커허브에서 이미지를 받아올 수 있습니다. 

 

Docker Hub Container Image Library | App Containerization

Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide.

hub.docker.com

 

각 페이지에 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

 - 도커 재부팅

 

 

 

 

 

 

추가적인 내용은 아래블로그에서 더 찾아볼 수 있을 것 같습니다. 

도커 네트워크와 볼륨(=공유 디렉토리)에 대한 내용은 추후에 다시 정리하겠습니다. 

 

 

 

<도커 명령어>

 

[docker]도커 명령어 모음

docker ps: 실행중인 컨테이너 목록 확인docker exec -it 컨테이너ID /bin/bash: 컨테이너 접속exit: 컨테이너 빠져나오기docker container ls -a: 전체 컨테이너 목록 확인하기

velog.io

 

 

 

 

틀린점이 있다면 댓 달아주세요!

댓글