[Docker] 도커 컨테이너 라이프사이클 및 실습

Kim Hyen Su·2023년 10월 23일
0

🐋Docker

목록 보기
2/7

용어 정리

CLI : Command -Line Interface _ cmd창을 의미

포트 바인딩

  • 기존의 도커 컨테이너는 로컬 PC와 격리되어 있다.(개별적인 PC)
  • 로컬 PC와 도커 컨테이너와 포트를 바인딩하여, 로컬에서 요청온 포트를 격리된 컨테이너로 연결되도록 통로를 연결해준것.

써드 파티

  • 프로그래밍을 도와주는 라이브러리를 만드는 외부 생산자를 의미함.

댕글링 이미지

  • 보통의 경우 컨테이너를 먼저 삭제한 뒤 이미지를 삭제한다.
  • 이 경우 이미지 레이어 파일까지 삭제되는데, 이미지를 사용중인 컨테이너가 있는 상황에서 -f 옵션을 추가해 이미지를 강제로 삭제하게 되면 이미지 레이어 파일을 실제로 삭제하지 않고 이미지 이름만 삭제하게 된다.
  • 이를 댕글링(dangling) 이미지 라고 부른다.

Detach 모드와 Attatch 모드

attach(default) : 해당 터미널이 해당 프로세스의 로그와 실행 내역을 보여주는 상태.

  • 장점 : 로그 실행내역들을 쉽게 조회가 가능하다.
  • 단점 : 해당 터미널이 프로세스 진행 동안 사용 불가 상태가 된다.

detach : 프로세스의 로그와 실행 내역을 터미널에 노출시키지 않는 상태.

  • 장점 : 프로세스 진행 여부와 상관없이 터미널 사용이 가능하다.
  • 단점 : 로깅이 되지 않으며, 입력을 하지 못한다.

🚢 도커 컨테이너 라이프사이클

img

컨테이너에 올라간 이미지는 프로세스 종료 후 삭제가 가능하다.(#실행 중 삭제 불가)


🐋 도커 컨테이너 설치 및 실행

도커 설치

하위에 Windows 도커 설치 관련 포스팅을 참조하여 다운로드 해줍니다.

Window Docker Download

도커 컨테이너 실행 방법

도커 컨테이너 실행 방법은 크게 2가지가 있습니다.

  • 생성 및 시작을 한번에 하는 방법과 따로 하는 방법 두개가 있습니다.
  • 2가지 방법 모두 공통사항으로 이미지가 없으면 레포지토리에서 자동으로 pull하게 됩니다.

도커 컨테이너 생성 및 시작을 한번에 하는 방법

$ docker run [image]
  1. 도커 컨테이너 생성과 시작을 따로하는 방법
$ docker create [image] // 컨테이너 생성
$ docker start [container] // 컨테이너 시작

도커 컨테이너 실행 실습

  • 도커가 설치된 환경에서 CLI에 아래 명령어 입력
$ docker run nginx

img

  • 도커에서 Pull은 깃에서 clone과 동일한 기능을 한다.
  • Ctrl + C 로 컨테이너 종료 후 아래 명령어를 입력해보면 실행된 흔적을 확인할 수 있다.
$ docker ps -a

img

  • 아래 명령어로 컨테이너 생성
$ docker create nginx
$ docekr ps -a

img

  • 컨테이너 생성 후 $docker ps -a 명령어를 입려해보면 NAMES에 도커 컨테이너의 이름이 자동으로 부여되는 것을 확인 할 수 있는데 해당 이름으로 도커 컨테이너를 실행 가능하다.
$ docker start [컨테이너명 | 컨테이너 고유 ID]

img

  • 실행 후 $ docker ps 명령어로 현재 실행중인 컨테이너 확인

img

  • docker 정지(pause) 하기
$ docker pause [컨테이너명 | 컨테이너 아이디]
  • docker 재실행 하기
$ docker unpause [컨테이너명 | 컨테이너 아이디]
  • docker 컨테이너 정지(stop)
$ docker stop [컨테이너명 | 컨테이너 아이디]
  • docker 컨테이너 재개(start)
$ docker start [컨테이너명 | 컨테이너 아이디]
  • docker 컨테이너 삭제(rm)
$ docker rm [컨테이너명 | 컨테이너 아이디]

컨테이너는 pause 시에는 삭제가 불가능하고, stop 시에만 삭제가 가능하다.

또한, 생명주기를 참고하면 알겠지만 created 상태의 컨테이너도 바로 rm 명령어로 삭제가 가능하다.

$ docker create nginx - 컨테이너 생성(name : rere)
$ docker rm rere - 컨테이너 삭제(OK)
  • docker image 일괄 삭제
$ docker image prune [OPTIONS]

OPTIONS

--all -a : 사용되지 않는 모든 이미지를 삭제.

--filter : filter 밸류를 제공한다.

--force -f : 확인 없이 바로 삭제.

  • docker 컨테이너 생성(UI)

img

img

  • 임시로 docker 실행 시 페이지 데이터 수정하는 방법
컨테이너명 클릭 ➡️ 네비게이션 바 [Files] ➡️ usr ➡️ share ➡️ nginx ➡️ html ➡️ idex.html

도커 컨테이너를 활용한 서드파티 서버 설치 및 가동

  • rabbitmq 이미지 다운 및 컨테이너 생성
docker run -d --name rabbitmq -p 5672:5672 -p 8080:15672 --restart=unless-stopped rabbitmq:management
  • 설치된 RabbitMQ 확인
http://localhost:15672/

img

RabbitMQ의 default username, password는 둘다 guest로 입력하면 된다.

img

로그인 후 정상으로 관리페이지가 접속됨을 알 수 있다.

profile
백엔드 서버 엔지니어

0개의 댓글

관련 채용 정보