Docker

[도커] 2장 - 도커 클라이언트 명령어(컨테이너 나열, 생명주기, 명령어 실행)

초코chip 2024. 10. 24. 16:51

컨테이너 나열(ps)

  • docker ps: 현재 실행중인 컨테이너 나열
  • docker ps -a: 모든 컨테이너를 나열
  • docker ps --format: 원하는 항목만 나열

 

출력되는 정보 항목

  1. CONTAINER ID: 컨테이너의 고유한 아이디 해시값. 실제로는 더 길지만 일부만 표시됨.
  2. IMAGE: 컨테이너 생성 시 사용한 도커 이미지.
  3. COMMAND: 컨테이너 시작 시 실행될 명령어
  4. CREATED: 컨테이너가 생성된 시간
  5. STATUS: 컨테이너의 상태.
    • 실행 중은 Up, 종료는 Exited, 일시정지는 Paused.
  6. PORTS: 컨테이너가 개방한 포트와 호스트에 연결된 포트. 특별한 설정을 하지 않은 경우 출력되지 않음.
  7. NAMES: 컨테이너의 고유한 이름.
    • 컨테이너 생성 시 --name 옵션으로 이름을 설정하지 않으면 도커 엔진이 임의로 형상화된 명칭을 조합해 설정.
    • ID나 마찬가지로 중복이 안되며 docker rename 명령어로 이름을 변경할 수 있음.

 

도커 컨테이너의 생명주기와 관련된 명령어

create,start,run,stop,rm

 

실행 명령어

  • docker start -a: 

 

중지 명령어 stop vs kill

  • docker stop: 그동한 하던 작업들을 완료하고 컨테이너를 중지
  • docker kill: 바로 컨테이너를 종료

삭제 명령어 rm, rmi, proun

삭제는 항상 

  • docker rm <컨테이너id>: 중지된 컨테이너 삭제
  • docker rmi <이미지id>: 이미지를 삭제
  • docker system prune: 사용하지 않는 컨테이너, 이미지, 네크워크를 삭제할 때 사용
    • 실행 중인 컨테이너 말고 중지된 컨테이너에만 작업을 함

 

 

컨테이너에 명령어 전달

컨테이너 내부에서 명령어 실행(run)

  • docker run <이미지> 뒤에 명령어를 인자로 전달하면 기본 시작 명령어 대신 해당 명령어가 실행
    • 단, 해당 이미지에 명령어를 실행하기 위한 파일이 없다면 명령어 실행 불가

 

 

 

실행중인 컨테이너에 명령어 전달

기본적으로 컨테이너는 격리된 공간이라 컨테이너 밖에서 명령어를 실행하려해도 접근할 수 없음

-> 컨테이너 내부에 접근하여 그곳에서 명령어를 실행!

 

  • docker exec <컨테이너id> <명령어>: 컨테이너 내부에 명령어를 전달하고 다시 밖으로 나옴
  • docker exec -it <컨테이너id> <명령어>: 컨테이너 내부에서 계속 명령어 입력 가능

 

컨테이너 환경의 터미널 접속 방법

  • docker exec -it <컨테이너id> [sh, bash ..]
  • 터미널 환경에서 나오려면 Control + D