※ 도커 CLI에 커맨드를 입력하려면 Docker가 실행되고 있어야 한다.
docker run [이미지명] ls
docker: 도커 클라이언트 언급
run: 컨테이너 생성 및 실행
이미지명: 이 컨테이너를 위한 이미지, 대상 이미지
ls: 현재 디렉토리의 파일 리스트 표출
※ ls가 위치한 자리(이미지명 뒤) : 원래 이미지가 가지고 있는 시작 명령어를 무시하고 이 자리에 있는 커맨드를 실행한다.
※ 하드디스크 내부에 존재하는 파일이 무엇인지에 따라 사용할 수 있는 커맨드가 있고 사용할 수 없는 커맨드가 있다.
ex) docker run alpine ls
를 입력하면 내부 디렉터리를 볼 수 있지만 docker run hello-world ls
를 입력하면 에러가 난다.
→ hello-world 파일 내부에는 ls 커맨드를 사용할 수 있는 파일이 없기 때문이다.
현재 실행중인 컨테이너 나열
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 [원래 이름] [변경할 이름]
docker ps --format 'table{{.Names}}\ttable{{.IMAGE}}'
\t: 탭(간격 띄우기)
{{.@@@}}: {{.보고싶은 항목}}
docker ps -a
-a: all
docker exec [컨테이너 ID]
※ docker run
vs docer exec
docker run
: 새로 컨테이너를 만들어서 실행
docer exec
: 이미 실행 중인 컨테이너에 명령어를 전달
출처
인프런 [따라하며 배우는 도커와 CI환경]