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 명령어를 사용하면 한번에 모든 과정을 거친다.
- local에 해당하는 이미지가 있는지 확인
- 없으면 dockerhub에서 pull
- 컨테이너 create
- 컨테이너 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