Infra

2. Docker 자주 쓰는 CLI

seonggoc 2025. 2. 5. 11:49

Docker를 사용할 때, 주로 사용하는 명령어는 알아두는 것이 좋다.

이미지 관련 CLI

1. 이미지 다운로드

이미지를 받는 명령어이고, 가장 기본적인 명령어

# 이미지 다운로드 명령어 (태그명을 입력하지 않으면 가장 최신버전을 다운받는다)
docker pull 이미지명:태그명

2. 이미지 조회 / 삭제

이미지를 받았으면 local에 있는 이미지를 확인하고, 삭제하는 명령어

# local에 있는 이미지 조회
docker image ls

# 이미지 삭제 (ID는 전부 입력하지 않아도 됨)
# rm -f 옵션시 강제 삭제
docker image rm [이미지명 또는 이미지ID]

# 컨테이너에서 사용하고 있지 않은 이미지만 전체 삭제
# docker images -q를 통해 이미지를 가져오고, 모두 삭제
$ docker image rm $(docker images -q)

# 컨테이너에서 사용하고 있는 이미지를 포함해서 전체 이미지 삭제
$ docker image rm -f $(docker images -q)

컨테이너 실행 및 삭제 관련 CLI

이미지를 바탕으로 컨테이너를 생성하고 실행하는 명령어

1. 컨테이너 생성 / 조회

컨테이너 생성

# docker create 이미지명[:태그명]
docker create nginx

2. 컨테이너 실행

컨테이너를 생성하는 것과 실행하는 것은 다르다. 생성을 했으면 실행을 해야 한다.

# docker 컨테이너 실행
docker start [컨테이너명 또는 ID]

# 모든 컨테이너 조회 -a 옵션은 모든 컨테이너 조회
docker ps

# 컨테이너 중단
docker stop [컨테이너 ID]

# 컨테이너 삭제
docker rm [컨테이너 ID]

3. 한 번에 처리하는 명령어

run 명령어를 사용하면 한번에 모든 과정을 거친다.

  1. local에 해당하는 이미지가 있는지 확인
  2. 없으면 dockerhub에서 pull
  3. 컨테이너 create
  4. 컨테이너 start
# 이미지 다운 및 컨테이너 생성 및 실행 (한번에 같이)
docker run [이미지명]

위와 같이 실행을 하면 포그라운드 모드로 실행이 되기 때문에 내가 지금 사용 중인 터미널 창을 쓸 수 없게 된다.
-d 옵션을 넣으면 백그라운드 모드로 실행을 하게 된다

# 백그라운드 모드 실행
docker run -d [이미지명]

# 이름 설정 및 백그라운드 모드 실행
docker run -d --name [컨테이너 이름] [이미지명]

# 이름 설정 및 포트 설정 및 백그라운드 모드 실행
docker run -d -p [호스트 포트]:[컨테이너 포트] --name [컨테이너 이름] 이미지명[:태그명]

4. 컨테이너 중지

# kill은 강제 종료
docker stop [컨테이너명 또는 ID]
docker kill [컨테이너명 또는 ID]

5. 컨테이너 삭제

# 컨테이너 삭제 가능 -f 옵션을 붙여서 실행중인 컨테이너 강제 삭제 가능
docker rm [컨테이너명 또는 ID]

# 중지되어있는 모든 컨테이너 삭제 -f 옵션까지 하면 모든 컨테이너 삭제
docker rm $(docker ps -qa)

컨테이너 로그 확인 및 내부 접속

docker를 사용하면서 내부가 잘 돌아가는지 로그를 조회할 일이 많다.
예를 들면 이전 글에서 올렸던 nginx, mariadb, wordpresss를 연결하는데, mariadb가 자꾸 오류를 일으켜 중지되었다. 그때 tail -f를 하고,
이후에 로그를 계속 조회했었다.

1. 컨테이너 로그 확인

# 해당 컨테이너의 log 출력 (--tail [숫자] 가능)
docker logs [컨테이너 ID]

# 실시간 로그 출력
docker logs -f

2. 컨테이너 내부 접속

보통 내부에 접속해서 만져보며 shell script 짤 일이 많아진다. 내부에 접속해서 상태를 확인할 때 쓰는 명령어이다.

# 해당 컨테이너 bash로 접속하기
docker exec -it [컨테이너 ID] bash
댓글수0