docker run ls
ls
) 원래 이미지에 들어 있는 기본 명령어는 무시되고 ls
명령어가 실행되어 파일 구조를 확인할 수 있다.ls
명령어를 실행 할 수 있는 것이 아닌 ls
명령어를 사용할 수 있는 파일이 들어 있는 경우 사용가능하다. 다른 명령어 또한 마찬가지이다.docker ps
ps = process status 약자이다.
실행중인 도커 컨테이너를 나열하여 보여주는 명령어이다.
출력 항목
- CONTAINER ID
: 컨테이너의 고유한 아이디 해시값, 실제로는 더 길지만 일부분만 출력, 중복이 안된다 (해시값이니깐)
- IMAGE
: 컨테이너 생성 시 사용한 도커 이미지 이름
- COMMAND
: 컨테이너 시작 시 실행될 명령어, 대부분 이미지에 내장되어 있어 별도 설정이 불필요 하다.
- CREATED
: 컨테이너가 생성된 시각
- STATUS
: 컨테이너의 상태, 실행 중 = Up, 종료 = Exited, 일시 정지 = Pause
- PORTS
: 컨테이너가 개방한 포트와 호스트에 연결한 포트, 특별한 설정을 하지 않은 경우 출력되지 않는다
- NAMES
: 컨테이너의 고유한 이름, 컨테이너 생성시 --name
옵션으로 이름을 설정하지 않으면 도커 엔진이 임의로 형용사와 명사를 조합해 설정, id와 마찬가지로 중복이 안된다. dorcer rename <원래이름> <변경할 이름>
명령어 사용으로 이름을 변경할 수 있다.
docker ps --format 'table {{.Name}} \t table {{.Image}}'
와 같이 쓴다.
docker ps -a
도커 컨테이너에는 생명 주기가 있다. 다음 생명 주기 별 명령어를 알아보겠다./
생성 → 시작 → 실행 → 중지(재시작 가능한 상태) → 삭제
docker run <이미지 이름>
docker create <이미지 이름>
: 도커 이미지를 이용해 도커 컨테이너를 생성docker start <컨테이너 ID/이름>
: 생성된 도커 컨테이너 시작해서 실행docker start -a <컨테이너 ID/이름>
-a
옵션 : attach 의 약자로 컨테이너를 실행한 후에 표준 입력(stdin), 표준 출력 (stdout), 표준 에러(stderr)를 가능하게 하고, 프로그램으로 입력 받은 내용을 터미널에 포여주는 역할을 하는 옵션docker stop <중지할 컨테이너 ID/이름>
or docker kill <중지할 컨테이너 ID/이름>
두 가지 명령어 사용docker stop
은 Graceful(우아하게)하게 컨테이너를 중지시킨다.docker stop
명령어는 SIGTERM
이라는 것을 보내 진행 중인 프로세스를 정리하는 시간(Grace Period)을 갖게한 다음에 SIGKILL
을 보내서 컨테이너를 중지 시킨다.docker kill
은 어떠한 것도 기다리지 않고 즉시 컨테이너를 중지시킨다.docker kill
은 SIGTERM
없이 SIGKILL
을 보내서 모든 프로세스를 멈추고 컨테이너를 중지 시킨다.docker rm <중지할 컨테이너 ID/이름>
docker rm
docker ps -a -q: `'` 홑 따옴표 아니다.
(그레이브)` 이거다docker rmi <이미지 ID>
docker system prune
docker exec <컨테이너 ID> <명령어>
docker run redis
로 레디스 서버 실행
redis-cli
로 레디스 클라이언트 실행
레디스 클라이언트 → 명령어 실행 set value1 hello
→ 레디스 서버
하지만 redis-cli
명령어로 레디스 클라이언트를 실행하면 에러가 난다.
redis-cli
: 실행하려 하지만 도커 컨테이너 밖이라 실행이 안된다.exec
명령어를 사용한다docker exec -it <레디스 컨테이너 ID> redis-cli
-it
옵션은?-i
: interactive-t
: terminal-it
옵션이 없으면 redis-cli
를 실행과 동시에 종료된다.set key1 hello
, → get key1
docker exec -it sh <컨테이너 ID> sh
docker exec -it <컨테이너 ID> <명령어>
명령어로 모두 입력하는 것은 비효율적인 작업이다. 비효율적인 면을 해결하기 위해 사용한다.Ctrl + D
로 셸이나 터미널 환경에서 나올 수 있다.