도커의 명령어를 사용하려면 도커 이미지 안에 해당 명령어를 수행할 수 있는 파일이 있어야 한다.
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 는 이미 실행 중인 컨테이너 에 명령어를 전달