[Docker] 기본적인 Docker 클라이언트 명령어

develop.u·2023년 12월 7일
0

docker

목록 보기
3/7

도커 사용의 흐름

  1. 도커 Client(CLI)에 커맨드 입력
  2. 도커 서버(도커 Daemon)는 입력한 커맨드를 받아서 그에 따라 이미지 생성/컨테이너 실행 등 모든 작업을 하게 된다.

※ 도커 CLI에 커맨드를 입력하려면 Docker가 실행되고 있어야 한다.

[1. 이미지 내부 파일 시스템 구조 보기]

docker run [이미지명] ls

docker: 도커 클라이언트 언급
run: 컨테이너 생성 및 실행
이미지명: 이 컨테이너를 위한 이미지, 대상 이미지
ls: 현재 디렉토리의 파일 리스트 표출

※ ls가 위치한 자리(이미지명 뒤) : 원래 이미지가 가지고 있는 시작 명령어를 무시하고 이 자리에 있는 커맨드를 실행한다.
※ 하드디스크 내부에 존재하는 파일이 무엇인지에 따라 사용할 수 있는 커맨드가 있고 사용할 수 없는 커맨드가 있다.
ex) docker run alpine ls를 입력하면 내부 디렉터리를 볼 수 있지만 docker run hello-world ls를 입력하면 에러가 난다.
→ hello-world 파일 내부에는 ls 커맨드를 사용할 수 있는 파일이 없기 때문이다.

[2. 컨테이너들 나열하기]

현재 실행중인 컨테이너 나열

docker ps

docker: 도커 클라이언트 언급
ps: process status

입력 결과
[ CONTAINER ID ][ IMAGE ] [ COMMAND ][ CREATED ] [ STATUS ][ PORTS ] [ NAMES ]

  • CONTAINER ID
    컨테이너의 고유한 아이디 해쉬값
    실제로는 더욱 길지만 일부분만 표출

  • IMAGE
    컨테이너 생성 시 사용한 도커 이미지

  • COMMAND
    컨테이너 시작 시 실행된 명령어(이미지명 다음에 입력한 command)
    대부분 이미지에 내장되어 있으므로 별도 설정이 필요하지 않다.

  • CREATED
    컨테이너가 생성된 시간

  • STATUS
    컨테이너의 상태
    실행 중은 Up, 종료는 Exited, 일시정지는 Pause

  • PORTS
    컨테이너가 개방한 포트와 호스트에 연결한 포트
    특별한 설정을 하지 않은 경우 출력되지 않는다.

  • NAMES
    컨테이너 고유한 이름
    컨테이너 생성 시 --name 옵션으로 이름을 설정하지 않으면 도커 엔진이 임의로 형용사와 명사을 조합해 설정한다.
    id와 마찬가지로 중복이 안 되고 docker rename 명령어로 이름을 변경할 수 있다.
    docker rename [원래 이름] [변경할 이름]

[3. 원하는 항목만 보기]

docker ps --format 'table{{.Names}}\ttable{{.IMAGE}}'

\t: 탭(간격 띄우기)
{{.@@@}}: {{.보고싶은 항목}}

[4. 실행되고 있지 않은 컨테이너까지 포함한 모든 컨테이너 나열]

docker ps -a

-a: all

[5. 실행 중인 컨테이너에 명령어 전달]

docker exec [컨테이너 ID]

docker run vs docer exec
docker run : 새로 컨테이너를 만들어서 실행
docer exec : 이미 실행 중인 컨테이너에 명령어를 전달

출처
인프런 [따라하며 배우는 도커와 CI환경]

0개의 댓글