클라우드/도커

[도커] 도커 2: docker 명령어 모음 1탄 (도커 컨테이너 관련 명령어)

KyuminKim 2024. 11. 12. 22:32

지난 시간에는 도커에 대해 간단하게 알아봤다.

이번 시간에는 docker 명령어를 알아보자.


도커 컨테이너 조회

$ docker ps                         # 도커 컨테이너 확인
$ docker ps  -a                    # 정지중인 컨테이너도 조회
$ docker container ls             # docker ps와 동일
결과
- CONTAINER ID: 생성된 컨테이너를 이 컴퓨터 안에서 구분시켜줄 ID
- IMAGE: 컨테이너를 생성하기 위해 사용된 base image
- STATUS: 컨테이너 상태
- NAMES: 컨테이너의 이름 (컨테이너 생성 시 지정 가능)

도커 컨테이너 생성/실행

$ docker run -it --name testUbuntu ubuntu:22.04
$ docker ps  # 도커 컨테이너 확인

docker run 주요 옵션

 

$ docker run -it --name testUbuntu ubuntu:22.04

-i : 상호 입출력이 가능한 상태로 컨테이너를 실행하라

      마우스 커서가 생김

      호스트 컴퓨터에서 입력한 명령어 -> 도커 컨테이너에 전달 

 

 -ttty를 활성화하여 bash 쉘을 실행시키며 컨테이너를 실행하라

       컨테이너로 생성된 새로운 컴퓨터 환경에 직접적으로 명령을 내리기 위해 쉘을 실행

실행 결과

 

$ docker run -d --name testUbuntuOptionD ubuntu
-d: 백그라운드로 실행
       마치 아무 일도 일어나지 않는 것처럼 보임 (하지만 뒤에서는 컨테이너 생성 + 컨테이너에게 전달한 명령어 수행중)
       지금은 아무런 명령어를 전달하지 않았으므로 컨테이너만 생성하고 바로 종료(exited)

 

살행 결과

 

 

$ docker run --name testContainerName ubuntu ls

--name: 컨테이너에 이름 지정
 

ls: (생성될) 컨테이너에 ls 명령어를 실행시킴 

실행 결과

 


도커 컨테이너 명령어 전달

$ docker run --name test utunbu:latest df # 명령어 df 전달

docker run 명령어와 함께, 맨 뒤에 명령어를 인자로 주면

컨테이너를 생성하고 + 바로 해당 명령어를 실행하도록 할 수 있다!

 

$ docker exec testUbuntuRunning2 ls
$ docker exec -it testUbuntuRunning2 /bin/bash # 실행 중인 컨테이너에 /bin/bash에 위치한 명령어 실행
- 이미 생성되어 실행중인 컨테이너에 명령어 전달
- 컨테이너 생성 시 전달한 컨테이너 명령어 + docker exec로 전달하는 명령어가 모두 끝나야 컨테이너 종료 & 자동 삭제

 

 

$ docker exec testUbuntuRunning2 ls

실행 결과

 

 

$ docker exec -it testUbuntuRunning2 /bin/bash

컨테이너 testUbuntuRunning2에 들어가 /bin/bash 명령어 실행

➔ 이때, /bin/bash 명령어는 쉘 프로그램이다.

    쉘 프로그램은 사용자가 터미널에서 명령어를 입력하면, 이 명령어를 운영체제가 실행하도록 운영체제에 전달하는 시스템 프로그램이다.

 

즉, /bin/bash를 이용해 쉘 프로그램을 키면직접 컨테이너에 명령어를 내릴 수 있다!

(여러분이 노트북으로 terminal/DOS창/cmd창/... 을 켜서 명령어를 쳐보는 것과 같은 것이다!)

exit 명령어를 통해 컨테이너에서 다시 호스트로 돌아올 수 있다!


도커 컨테이너 중지 

$ docker stop $(docker ps -aq)             # 모든 컨테이너 정지
$ docker ps -a                            # 정지중인 컨테이너도 조회 
$ docker restart  컨테이너명/id             # 재시작

 

docker ps -a 명령어, docker stop 명령어

도커 컨테이너 삭제

$ docker rm testUbuntu                #testUbuntu라는 이름을 가진 컨테이너 삭제
$ docker rm -f testUbuntu             #testUbuntu 컨테이너가 실행 중일 때 강제 삭제
$ docker rm -f $(docker ps -aq)      #모든 컨테이너 강제 삭제
기본적으로 실행중인 컨테이너는 삭제 불가하다.
하지만 -f 옵션과 함께 docker rm을 진행하면 강제로 삭제할 수 있다!

중지한 컨테이너를 다시 실행하기 위해서는

docker restart 명령어를 사용할 수 있다!

다음은 도커 명령어를 더 알아보자!