intro : 자주 사용하는 docker 명령어에 대해서 알아보자.
이미지 관련 명령어
이미지 다운로드
docker 명령어를 통해 이미지를 다운로드 받는 명령어는 다음과 같다.
docker pull nginx
이미지 조회/삭제
docker 명령어를 통해 다운받은 모든 이미지를 조회하는 명령어는 다음과 같다.
docker image ls
docker 명령어를 통해 특정 이미지를 삭제하는 명령어는 다음과 같다.
// 아래 이미지에서 nginx 이미지 ID 값을 조회하고 이미지를 삭제한다.
docker image rm [이미지 명] 혹은 [이미지 ID]
docker image rm 42e9
중지된 컨테이너에서 사용하고 있는 이미지를 강제 삭제하는 명령어는 다음과 같다.
docker image rm -f [이미지 명] 혹은 [이미지 ID]
가끔 전체 이미지를 삭제하는 명령어가 필요할때가 있는데 다음과 같은 명령어를 사용하면 된다.
// 컨테이너에서 사용하고 있지 않은 이미지만 전체 삭제
docker image rm $(docker images -q)
// 위 명령어는 모든 이미지를 삭제하고자 시도하지만, 아래 명령어는 컨테이너가 참조하지 않는 이미지만 삭제
docker image prune -a
// 컨테이너에서 사용하고 있는 이미지를 포함해서 전체 이미지 삭제
docker image rm -f $(docker images -q)
컨테이너 관련 명령어
컨테이너 생성 및 실행
컨테이너를 생성하는 명령어는 다음과 같다. 이 명령어는 컨테이너를 생성할 뿐이지 실행하는 것은 아니다.
docker create nginx
생성한 컨테이너를 실행하는 명령어는 다음과 같다.
docker start 컨테이너명[또는 컨테이너 ID]
docker start 27d88
컨테이너 생성 + 실행 한번에 하기
기존에는 컨테이너를 생성하고 실행을 따로따로 명령어를 실행했는데 위 과정을 한번에 처리해주는 명령어가 있다.
// 포어그라운드로 실행되어서 Ctrl + C로 종료할수 있음
docker run 이미지명[:태그명]
docker run nginx
// 백그라운드로 실행하는 법
docker run -d nginx
컨테이너를 이름을 따로 지정해서 실행하는 명령어는 다음과 같다.
docker run -d --name [컨테이너 이름] 이미지명[:태그명]
docker run -d --name webserver nginx
docker를 통해 실행한 컨테이너를 호스트 컴퓨터에서 접속을 하기 위해서는 다음과 같이 명령어를 실행하여 포트포워딩을 해야한다.
docker run -d -p 4000:80 nginx
컨테이너 조회/중지/삭제
실행중인 컨테이너를 조회하는 명령어는 다음과 같다.
docker ps
모든 컨테이너를 조회하는 명령어는 다음과 같다.
docker ps -a
컨테이너를 중지하는 명령어는 다음과 같다.
docker stop 컨테이너명[또는 컨테이너 ID]
docker kill 컨테이너명[또는 컨테이너 ID]
docker stop 4a32
중지 되어 있는 특정 컨테이너를 삭제하는 명령어는 다음과 같다.
docker rm 컨테이너명[또는 컨테이너 ID]
실행되고 있는 특정 컨테이너를 삭제하는 명령어는 다음과 같다.
docker rm -f 컨테이너명[또는 컨테이너 ID]
가끔 모든 컨테이너를 삭제해야하는 경우가 있는데 다음과 같은 명령어를 사용하면 된다.
// 중지되어 있는 모든 컨테이너 삭제
docker rm $(docker ps -qa)
// 실행중이거나 중지되어있는 모든 컨테이너 삭제
docker rm -f $(docker ps -qa)
컨테이너 로그 조회
docker logs [컨테이너 ID 또는 컨테이너명]
docker logs 2d5f
최근 로그 10줄만 조회하는 명령어는 다음과 같다.
dokcer logs --tail [로그 끝부터 표시할 줄 수] [컨테이너 ID 또는 컨테이너명]
dokcer logs --tail 10 [컨테이너 ID 또는 컨테이너명]
docker logs --tail 10 2d5f
기존 로그 조회 + 생성되는 로그를 실시간으로 보고 싶은 경우는 다음과 같은 명령어를 실행하면 된다.
docker logs -f [컨테이너 ID 또는 컨테이너명]
기존 로그는 조회하지 않고, 생성되는 로그를 실시간으로 조회하는 명령어 이다.
docker logs --tail 0 -f [컨테이너 ID 또는 컨테이너명]
실행중인 컨테이너 내부에 접속하기
docker exec -it [nginx가 실행되고 있는 컨테이너 ID] bash
docker exec -it 0ebad bash
다음으로
이번시간에는 자주 사용하는 docker 명령어에 대해서 학습하였다. 다음으로는 docker 볼륨을 활용해 데이터 유실 방지하는 방법에 대해 학습해 볼 예정이다.