기본적으로는 공식 문서를 참고하되, 자주 사용하는 명령어 몇 개만 나열해 본다.
docker run
이미지를 생성 및 실행해 주는 명령어이다. 원래는 분리된 생성(docker create)와 실행(docker start)을 한번에 실행시키는 명령어이다.
docker run [이미지 이름] [실행할 명령어]
위 그림은 docker run hello-wolrd를 실행했을 때 나오는 결과이다. 중간에 메시지에 나와 있는 것을 보면 처음에 봤던 도커 아키텍처가 자연스레 생각날 것이다.
참고로 [실행할 명령어]의 경우 옵셔널한 값이다. 기본적으로는 원래 이미지에 설정된 기본 실행 명령어가 실행되지만, [실행할 명령어] 자리에 명령어를 별도로 넣어주게 되면, 기존에 설정된 값을 무시하고 내가 입력한 명령어를 실행한다. 당연히 [실행할 명령어]는 도커 이미지에 설정된 명령어야 하며, 아닐 경우 에러가 발생한다.
docker ps
도커의 현재 실행중인 프로세스 상태를 보여준다.
대부분은 위의 설명으로 알 수 있으나 status에 대해서만 추가적으로 작성하자면, 아래와 같은 상태값을 지닌다.
- Up: 실행중
- Exited: 종료
- Pause: 일시 정지
만약 실행 중인 컨테이너 뿐만 아니라 다른 컨테이너도 다 보고 싶다면 옵션을 명령어에 추가해 주면된다.
$ docker ps -a
docker stop vs docker kill
컨테이너 중지 명령어 이며, 명령어 뒤에는 [중지할 container ID 또는 이름]을 입력한다.
- docker stop: 진행 중이던 작업을 모두 마치고 컨테이너를 중지한다. (docker stop -> SIGTERM - 진행중인 프로세스 정리(Grace Period) -> SIGKILL)
- docker kill: 즉시 컨테이너를 중지한다. (docker kill -> SIGKILL)
docker rm
컨테이너 삭제 명령이며, 명령어 뒤에는 [중지할 container ID 또는 이름]을 입력한다.
- docker rm -f redis: 실행 중인 컨테이너를 강제로 제거
docker rmi
도커 컨테이너 뿐만 아니라 이미지를 삭제하고 싶을때 사용하는 명령어 이며, 이 명령어 뒤에는 [이미지 ID]를 입력한다.
참고로 docker images 명령어를 통해 도커 이미지 목록을 볼 수 있다.
물론 명령어도 쉽지만, 처음엔 조금 헷갈릴 수가 있는게 이미지 삭제를 바로 하면 에러 메시지가 나올 것이다.
이미지 삭제는 해당 이미지가 있는(실행중만이 아님, 실행 중이라면 당연히 정지 및 삭제 필요) 컨테이너를 모두 삭제해야 한다.
위 그림은 hello-world 이미지를 삭제하기 위한 노력이다. 처음엔 직접 꼭 이 과정을 거쳐보자. 그래야 다음 명령어의 소중함을 알게된다.
- docker rm -f $(docker ps -aq --filter ancestor=hello-world)
- docker image prune: prune은 불필요한 것을 제거한다는 의미로, 사용하지 않는 이미지만 삭제할 수 있다.
docker rm 'docker ps -a -q'
현재 중지된 모든 컨테이너를 삭제한다.
docker exec
실행중인 컨테이너에게 명령를 전달한다. 공식 문서 예제를 참고하자.
docker system [command]
- docker system df: 도커 디스크 사용량을 볼 수 있다.
- docker system events: 서버로 부터 실시간 이벤트를 받는다.
- docker system info: 시스템 전체 정보를 보여준다.
- docker system prune: 사용하지 않는 데이터를 삭제한다. 여기에는 중지된 모든 컨테이너와 네트워크, 이미지 등이 삭제되며 삭제한 목록과 확보한 공간의 크기를 알려준다.
레디스 설치해보기
자주 사용하는 레디스를 도커 환경에서 실행해 보자.
$ docker run redis
이제 redis-cli 명령어를 쓰기 위해서는 당연히 docker 컨테이너 안에서 실행시켜 주면된다.
이때 위에서 언급한 실행 중인 컨테이너에게 명령을 전달하는 docker exec를 이용하면 된다.
redis-cli 실행 하기
# $ docker exec -it [컨테이너 ID] 명령어
$ docker exec -it f2cdcd1244a2 redis-cli
-it 옵션 없이 사용할 경우 아래 그림과 같이 레디스 클라이언트가 실행되자마자 종료되서 명령어를 입력할 수 없게 된다.
그래서 -i: interactive(대화형), -t: terminal(터미널) 옵션을 추가하여 레디스 클라이언트가 유지되면서 터미널로 메시지를 보낼 수 있게 해주었다.
실행 중인 컨테이너의 쉘 환경에 접속하는 법
위 명령어를 약간만 수정해 주면된다.
$ docker exec -it [컨테이너 ID] sh
참고로 쉘 환경을 나오는 단축키는 Control + D 이다.
깃북으로 보기
https://ajdkfl6445.gitbook.io/study/devops/docker/basic-command
'Docker' 카테고리의 다른 글
[Docker] 도커 입문하기 5 - 이미지 업데이트 (0) | 2021.12.20 |
---|---|
[Docker] 도커 입문하기 4 - 도커 이미지 만들기 (0) | 2021.12.14 |
[Docker] 도커 입문하기 2 - 배경 지식 쌓기 (0) | 2021.12.13 |
[Docker] 도커 입문하기 1 - 맛보기 및 설치 (0) | 2021.12.13 |