ps
명령어는 실행 중인 컨테이너 목록을 보여준다.
-a
: 종료된 컨테이너를 포함하여 모든 컨테이너를 출력합니다.
$ docker ps [OPTIONS]
$ docker ps -a
$ docker stop CONTAINER_NAME(CONTAINER_ID)
docker stop $(docker ps -a -q)
$ docker rm CONTAINER_NAME(CONTAINER_ID)
중지된 컨테이너를 하나하나 삭제하는 건 귀찮기 때문에 docker rm -v $(docker ps -a -q -f status=exited)
명령어를 입력하자.
중지된 컨테이너 ID를 가져와서 한번에 삭제한다.
docker rm $(docker ps -a -q)
컨테이너가 정상적으로 동작하는 지 확인하는 좋은 방법 ! 로그를 확인하자.
$ docker logs [OPTIONS] CONTAINER_ID
$ docker exec [OPTIONS] CONTAINER_ID COMMAND
도커가 다운로드한 이미지 목록을 보여준다.
$ 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만 보기
이미지가 너무 많이 쌓이면 용량을 차지하기 때문에 사용하지 않는 이미지는 지우는 것이 좋다.
$ docker create [OPTIONS] [IMAGE_NAME:TAG]
$ docker create -it python
레지스트리에서 이미지 또는 레포지토리를 가져온다.
run
명령어를 사용하면 이미지가 없는 상태에서 자동으로 다운받기 때문에 pull
명령어를 언제 사용하는 지 궁금할 수 있다.
pull
은 최신 버전으로 다시 다운받는다.
태그는 필수가 아님
$ docker pull [OPTIONS] NAME[:TAG|@DIGEST]
$ docker pull docker/whalesay
!!!!! 컨테이너가 실행 중인 이미지는 삭제되지 않는다 !!!!!
$ docker rmi IMAGE_ID
docker rmi $(docker images -a -q)
run = create + start + pull + attach
$ docker container run --name 컨테이너_이름 docker/whalesay:latest cowsay boo
--name
: 컨테이너의 이름을 할당.정상적으로 실행되었을 때 터미널
호스트 포트와 컨테이너 포트를 연결할 때 사용한다.
docker container run --name 컨테이너_이름 -p 818:80 httpd
컨테이너가 종료되면(내부에서 진행되는 작업이 끝나면) 컨테이너를 제거한다.
호스트와 컨테이너의 디렉토리를 연결한다.
컨테이너로 들어갔을 때 bash로 CLI 입출력을 사용할 수 있도록 설정한다.
컨테이너 이름 설정.
prune
은 도커에서 공식적으로 제공하는 제거 명령어이다.
이미지, 컨테이너, 볼륨 등을 세분화하여 제거할 수 있다.
안전을 위해 기본적으로는 사용되지 않는 리소스만 제거하는 가비지 컬렉터 개념으로 보면 좋다.
사용되지 않는 모든 도커 요소(컨테이너, 이미지, 네트워크, 볼륨, ...) 삭제.
$ docker stop $(docker ps -aq) # 모든 컨테이너 중지
$ docker system prune -a