docker image 실행 및 컨테이너 확인

2017. 9. 12. 13:55리눅스/우분투( Ubuntu)

1. docker run [이미지명] [실행 명령어]

  - 특정 docker image를 통해 자신이 원하는 작업을 실행하는 명령어.

  - 아래 예제는 "ubuntu" 이미지에서 /etc/hosts 내용을 출력하는 예제입니다. 결과 값은 아래와 같이 바로 출력이 됩니다.

 

2. docker run -ti [이미지명] [실행 명령어]

   - Docker image를 Interactive 하게 실행.

   - Docker container 안에 들어가서 작업을 진행 할 수 있다.

  

   - Interactive하게 실행할 경우, prompt 위치가 변경된 것을 볼 수 있다.

     즉, 방금 자신이 실행한 docker container 이미지 안으로 접속이 된 것을 확인 할 수 있다.

     hostname , cat /etc/hosts, ps 와 같은 간단한 명령어를 실행해 보면, 자신의 실제 리눅스 머신과 전혀 다른 결과를 볼 수 있다.

   - Docker 는 기본적으로 모든 image (container)는 독립적인 체제로 구성 및 실행이 된다. (리눅스 네임스페이스)

     --> 네트워크 , PID 등 모두 독립적으로 관리가 되고, 이를 예외처리 하기 위해서는 옵션을 주어 실행 하면 된다.

     --> docker container 안에서 ps 를 쳐보면, 자신이 실행한 명령어가 PID "1"을 가지고 실행되고 있다. ( 여기서는 /bin/bash )

 

3. docker ps [옵션]

  - 현재 실행되고 있는 docker container 확인하는 명령어.

  - 아래와 같이 나오면, 현재 실행 중이 docker container가 없다는 것을 의미한다.

    - docker ps -a : 실행되고 끝난 docker container를 포함하여 출력. ( 가장 최근의 container가 맨위에 나온다. )

    (참고 : docker image를 통해 실행되는 프로세스는 각각의 container를 생성하고 해당 container 안에서 실행 명령어들이 실행 됩니다.)

 

4. docker rm [컨테이너 ID]

  - 사용이 끝난 container 삭제.

  - 기본적으로 image 실행할 때 옵션을 주어 실행하지 않으면, 이미지 실행 후에 container 는 계속 남아 있는다.

  - 컨테이너 ID는 "docker ps -a" 명령어를 통해 확인하면 된다.

 

  - 항상 stop 상태의 container 만 삭제가 가능하고, 그렇지 않을 경우, 아래와 같은 에러가 발생하게 된다.

 

* 주의 : Contiainer 를 삭제하면, 안에서 작업한 내용들도 모두 같이 삭제가 된다.

 

 

5. docker rmi [이미지명]

  - docker image 삭제

  - 해당 image를 사용하고 있는 container 가 있으면 에러가 발생한다. container를 모두 종료 & 삭제하고 진행해야 정상적으로 진행이 된다.