도커의 명령어를 사용하려면 도커 이미지 안에 해당 명령어를 수행할 수 있는 파일이 있어야 한다.

Alpine 이라는 이미지를 실행 하면서 ls 명령러를 사용해서 파일 리스트 보기

hello-world 를 똑같이 실행해보기


실행중 컨테이너 확인

$ docker ps


ping 실행 후

  • ‘CONTAINER ID’ : 컨테이너 고유 ID
  • ‘IMAGE’ : 사용되는 도커 이미지
  • ‘COMMAND’ : 실행될 실행된 명령어
  • ‘CREATED’ : 컨테이너가 생성된 시간
  • ‘STATUS’ : 컨테이너의 상태 (실행중 : UP) / (종료 : Exited) / (일시정지 : Pause)
  • ‘PORTS’ : 컨테이너가 개방한 포트와 호스트에 연결한 포트, 특별한 설정을 하기 전에는 출력되지 않는다.
  • NAMES : 컨테이너의 고유한 이름 컨테이너 생성 시 –name 옵션으로 이름을 설정하지 않으면 랜덤설정 - RENAMES : $ docker rename (original-name) changed-name

원하는 항목만 보기

$ docker ps –format ‘table.tableNames \t .imageName’



모든 컨테이너 보기

$ docker ps -a(attach)



Docker Life cycle



docker run 쪼개기

$ docker run => create / start


$ docker create 이미지


$ docker start -a 컨테이너 이름 (일부분 혹은 전체)


도커 중단하기

$ docker stop / kill

  • 도커 컨테이너 아이디가 실행마다 바뀌는데 $ docker ps 로 실행 중 컨테이너 ID 확인 가능

$ docker stop CONTAINER ID


$ docker kill CONTAINER ID



도커 컨테이너 지정 삭제

$ docker rm 컨테이너 아이디 또는 네임

  • 실행 중인 컨테이너는 먼저 중지한 후에 삭제 가능


도커 컨테이너 전체 삭제

$ docker rm 'docker ps -a -q' (백틱)


도커 이미지 삭제

$ docker rmi 이미지 아이디


도커 이미지 전체 삭제

$ docker system prune

  • 도커를 쓰지 않을 때 모두 정리하고 싶을 때 사용
  • 실행중인 컨테이너에는 영향이 없음

도커 실행 주인 컨테이너에 명령어를 전달

$ docker exec CONTAINER ID

  • $ docker run 은 새로 컨테이너를 만들어서 실행
  • $ docker exec 는 이미 실행 중인 컨테이너 에 명령어를 전달