데브코스/영상과제

가장 쉽게 배우는 도커

민발자 2024. 12. 16. 16:40
728x90

https://youtu.be/hWPv9LMlme8?si=oN_-jjiNDI1BctxF

Dockerfile

도커파일은 이미지를 어떻게 구성하고 설정할지 명령어 형식으로 기술한 파일

도커 이미지의 구성 요소와 환경을 정의한 스크립트 파일, 이를 통해 이미지를 자동으로 빌드

  • FROM
    • 이미지 기반이 될 부모 이미지
  • RUN
    • 컨테이너 내에서 실행할 명령어
    • 보통 패키지 설치나 설정 변경 등 수행
  • COPY/ADD
    • 로컬시스템에 있는 파일이나 디렉토리를 도커 이미지 안으로 복사할 때 사용
    • copy는 복사, add는 압축풀기, URL에서 파일 가져오기 등 추가 기능
  • WORKDIR
    • 현재 작업 디렉토리를 설정
  • CMD / ENTRYPOINT
    • 컨테이너가 실행될 때 실행할 기본 명령어 정의
    • cmd는 기본 명령어만 지원 entrypoint는 실행될 명령을 고정시켜버림
  • EXPOSE
    • 컨테이너가 사용하려는 포트 지정
    • 컨테이너 외부에서 해당 포트로 접근할 수 있도록 지정
    • 컨테이너를 실행할 때 -p 옵션을 사용해 포트 바인딩 필요
  • VOLUME
    • 컨테이너의 데이터를 호스트 시스템에 저장, 데이터 유지되도록 설정
    • 컨테이너와 호스트간 데이터 공유가 가능해짐
    • 볼륨이란 컨테이너와 특정 폴더를 공유하는 것

도커 컨테이너 실행

  • Node.js 실행
docker run -it node
  1. docker
    도커 CLI를 사용
  2. run
    새로운 컨테이너를 생성하고 실행
  3. -it
    -i : 컨테이너와 상호작용할 수 잇는 입력 스트림 유지
    -t : 터미널을 활성화하여 컨테이너의 명령중 인터페이스를 사용
    -it : 컨테이너를 실행한 뒤 마치 서버에 SSH로 접속한 것처럼 터미널에서 컨테이너 내부 조작을 할 수 있음
  4. node
    실행할 이미지 이름
    이미지가 없으면 허브에서 다운받고 컨테이너로 구성

  • 컨테이너 생성 및 실행
docker run --name 컨테이너명 -v $(pwd):/home/node/app -p 8080:8080 이미지명

 

  1. docker
    도커 CLI를 사용
  2. run
    새로운 컨테이너를 생성하고 실행
  3. --name
    생성된 컨테이너에 이름을 부여
  4. -v $(pwd):/home/node/app
    호스트 디렉토리와 컨테이너 디렉토리를 연결(마운트)
    $(pwd) : 현재 작업 디렉터리(호스트)
    /home/node/app : 컨테이너 내의 디렉터리
    컨테이너 내부에서 작업하는 파일이 호스트에 실시간으로 동기화되고 소스 코드 수정 시 컨테이너를 재시작 하지 않아도 변경사항이 적용 됨
  5. -p 8080:8080
    포트 매핑
    호스트의 8080포트를 컨테이너의 8080 포드에 연결
    외부에서 호스트의 localhost:8080으로 접속하면 컨테이너의 8080 포트로 트래픽이 전달
    컨테이너에서 실행 중인 애플리케이션을 호스트에서 접근 가능하게 만듦
  6. 이미지명
    컨테이너를 생성할 때 사용할 도커 이미지 이름 지정

 


Docker compose

여러 개의 도커 컨테이너를 정의하고 실행할 수 있게 도와주는 도구

단일 yaml 파일을 사용해 애플리케이션을 구성하고 네트워크, 볼륨, 환경 변수 등을 쉽게 관리

728x90