Docker 기본 명령어

yezo cha·2021년 9월 17일
0
post-thumbnail

컨테이너

컨테이너 목록 확인(ps)

ps 명령어는 실행 중인 컨테이너 목록을 보여준다.
-a : 종료된 컨테이너를 포함하여 모든 컨테이너를 출력합니다.

$ docker ps [OPTIONS]

$ docker ps -a

컨테이너 중지(stop)

$ docker stop CONTAINER_NAME(CONTAINER_ID)
  • 실행 중인 모든 컨테이너 중지: docker stop $(docker ps -a -q)

컨테이너 제거(rm)

$ docker rm CONTAINER_NAME(CONTAINER_ID)

중지된 컨테이너를 하나하나 삭제하는 건 귀찮기 때문에 docker rm -v $(docker ps -a -q -f status=exited) 명령어를 입력하자.
중지된 컨테이너 ID를 가져와서 한번에 삭제한다.

  • 모든 컨테이너 삭제: docker rm $(docker ps -a -q)

컨테이너 로그 확인(logs)

컨테이너가 정상적으로 동작하는 지 확인하는 좋은 방법 ! 로그를 확인하자.

$ docker logs [OPTIONS] CONTAINER_ID

컨테이너 명령어 실행(exec)

$ docker exec [OPTIONS] CONTAINER_ID COMMAND

이미지

이미지 목록(images)

도커가 다운로드한 이미지 목록을 보여준다.

$ docker images [OPTIONS] [REPOSITORY[:TAG]]

$ docker images
$ docker image ls	# docker image의 용량 확인
$ docker image ls -a	# -a: all
$ docker image ls -z	# docker image id만 보기

이미지가 너무 많이 쌓이면 용량을 차지하기 때문에 사용하지 않는 이미지는 지우는 것이 좋다.

이미지로 컨테이너 생성하기(create)

$ docker create [OPTIONS] [IMAGE_NAME:TAG]

$ docker create -it python

이미지 다운로드(pull)

레지스트리에서 이미지 또는 레포지토리를 가져온다.

run 명령어를 사용하면 이미지가 없는 상태에서 자동으로 다운받기 때문에 pull 명령어를 언제 사용하는 지 궁금할 수 있다.
pull은 최신 버전으로 다시 다운받는다.

태그는 필수가 아님

$ docker pull [OPTIONS] NAME[:TAG|@DIGEST]

$ docker pull docker/whalesay

이미지 삭제(rmi)

!!!!! 컨테이너가 실행 중인 이미지는 삭제되지 않는다 !!!!!

$ docker rmi IMAGE_ID
  • 전체 이미지 제거 : docker rmi $(docker images -a -q)

실행(run)

run = create + start + pull + attach

$ docker container run --name 컨테이너_이름 docker/whalesay:latest cowsay boo
  • {container} run
    • 컨테이너를 실행한다.
  • [OPTIONS]
    • --name : 컨테이너의 이름을 할당.
  • [COMMAND]
    • command는 초기 컨테이너 실행 시 수행되는 명령어.
    • cowsay : 컨테이너 실행 시 cowsay 명령어를 호출한다. node를 호출하듯 이용한다.
  • [ARG..]
    • boo : COMMAND인 cowsay에 넘겨질 파라미터.

정상적으로 실행되었을 때 터미널

run에서 자주 쓰이는 플래그

-p <호스트 포트>:<컨테이너 포트>

호스트 포트와 컨테이너 포트를 연결할 때 사용한다.

docker container run --name 컨테이너_이름 -p 818:80 httpd

--rm

컨테이너가 종료되면(내부에서 진행되는 작업이 끝나면) 컨테이너를 제거한다.

-v <호스트 디렉토리>:<컨테이너 디렉토리>

호스트와 컨테이너의 디렉토리를 연결한다.

-it

컨테이너로 들어갔을 때 bash로 CLI 입출력을 사용할 수 있도록 설정한다.

--name <이름>

컨테이너 이름 설정.

prune

prune은 도커에서 공식적으로 제공하는 제거 명령어이다.
이미지, 컨테이너, 볼륨 등을 세분화하여 제거할 수 있다.
안전을 위해 기본적으로는 사용되지 않는 리소스만 제거하는 가비지 컬렉터 개념으로 보면 좋다.

모든 요소 삭제

사용되지 않는 모든 도커 요소(컨테이너, 이미지, 네트워크, 볼륨, ...) 삭제.

$ docker stop $(docker ps -aq)	# 모든 컨테이너 중지
$ docker system prune -a
profile
(ง •̀_•́)ง

0개의 댓글