도커 클라이언트 명령어를 알아보자

cdwde·2022년 10월 1일
0

Docker

목록 보기
2/8
post-thumbnail

✅ 컨테이너 나열

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

docker ps

  • CONTAINER ID: 컨테이너의 고유한 아이디 해쉬값
  • IMAGE: 컨테이너 생성 시 사용한 도커 이미지
  • COMMAND: 컨테이너 시작 시 실행될 명령어이며, 대부분 이미지에 내장되어 있으므로 별도 설정 필요 없음
  • CREATED: 컨테이너 생성 시간
  • STATUS: 컨테이너의 상태(실행중 Up, 종료 Exited, 일시정지 Pause)
  • PORTS: 컨테이너가 개방한 포트와 호스트에 연결된 포트로, 특별한 설정하지 않으면 출력되지 않음
  • NAMES: 컨테이너 고유 이름 (컨테이너 생성 시 --name 옵션으로 설정하지 않으면 도커 엔진이 임의로 설정)

모든 컨테이너 나열

docker ps -a

✅ 도커 컨테이너의 생명주기

컨테이너 생성

docker create <이미지_이름>

컨테이너 실행

docker start <컨테이너or이미지_이름>

컨테이너 생성 + 실행

docker run <이미지_이름>

컨테이너 중지

docker stop <컨테이너or이미지_이름>
docker kill <컨테이너or이미지_이름>

stop은 그 동안 하던 작업들을 완료하고 컨테이너를 중지시키지만, kill은 기다리지 않고 바로 컨테이너 중지시켜버리는게 차이점이다!

컨테이너 삭제

실행 중인 컨테이너는 먼저 중지 후 삭제가 가능하다.

docker rm <컨테이너or이미지_이름>

모든 컨테이너를 삭제하기 위해서는

docker rm `docker ps -a -q`

이미지 삭제

docker rmi <이미지_이름>

컨테이너, 이미지, 네트워크 한 번에 모두 삭제

docker system prune

단, 실행 중인 컨테이너에는 영향을 주지 않는다.

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

docker exec <컨테이너_아이디>
docker run <이미지_이름>

docker exec는 이미 실행 중인 컨테이너에 명령어를 전달하지만, docker run은 새로 컨테이너를 만들어서 실행한다.

✅ Docker run 옵션 종류

-i, --interactive

  • 표준 입력(stdin)을 활성화하며, 컨테이너와 연결되어 있지 않더라도 표준 입력을 유지한다.
  • 보통 이 옵션을 사용하여 Bash에 명령을 입력한다.

-t, --tty

  • Bash를 사용하려면 이 옵션을 설정해야 한다.
  • 이 옵션을 설정하지 않으면 명령을 입력할 수는 있지만, 셸이 표시되지 않는다.

-d, --detach

  • 보통 데몬 모드라고 부르며, 컨테이너가 백그라운드로 실행된다

-p, --publish

  • 호스트와 컨테이너의 포트를 연결한다.

✅ 컨테이너를 쉘 환경으로 접근

docker exec -it <컨테이너_아이디> sh

쉘 나오기 위해서는 ctrl+D

✅ 레디스를 이용한 컨테이너 이해

먼저 레디스 서버가 작동하고 있어야하고, 그 이후에 레디스 클라이언트 실행 후 명령어를 레디스 서버에 전달해야 한다.

docker run redis
redis-cli

그냥 단순히 이렇게 하면 에러가 난다.(Connection refused)
레디스 클라이언트가 레디스 서버가 있는 컨테이너 밖에서 실행을 하려고 하기 때문이다. (레디스 서버에 접근을 할 수가 없어서 에러 발생)

그러니 레디스 클라이언트도 컨테이너 안에서 실행할 수 있게 변경하자

docker exec - it <컨테이너_아이디> redis-cli

참고
[Docker] Docker run 옵션 종류
따라하며 배우는 도커와 CI환경

0개의 댓글