[Backend] Docker가 뭐여?

혜 콩·2024년 4월 2일

Backend

목록 보기
9/9

Docker 🐳

  • 서로 다른 운영체제에서도 같은 환경을 구현할 수 있도록 도와주는 프로그램
    (Window에서 작성한 코드를 서버 Linux에 올리면 코드가 작동하지 않는 문제를 해결!)

  • 설정한 환경을 docker가 읽고 virtual Container를 컴퓨터에 생성해줌
    각각의 컨테이너는 독립적이기 때문에 하나의 서버 안에 여러 개의 컨테이너 환경 구축 가능


컨테이너 (Container)

  • Application, System Tools, Dependencies를 모은 소프트웨어 unit
  • 컨테이너는 이미지를 기반으로 실행되기 때문에 하나의 컨테이너는 하나의 실행 환경을 갖는다.
    • 여러 개의 컨테이너를 함께 실행하기 위해서는 여러 컨테이너 간의 통신이 필요!
      Docker Compose 사용
version: '3'
services:
  web:
    image: nginx
    ports:
      - "8080:80"
  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: example
  • 각 PC, 서버마다 라이브러리 버전과 환경이 달라서 메인소스 코드를 실행시켜도 의존성 문제, 버전 문제 등 각종 이슈가 생기기 쉽다. ⇒ Docker로 어느 서버든 같은 환경을 맞추자

컨테이너 vs VM

  • Virtual Machine

  • Container

Image는 애플리케이션의 스냅샷 같은 느낌이다.
Image가 Class라면, Container는 인스턴스


Dockerfile

도커에서 이미지를 생성하기 위한 용도로 작성하는 파일
⇒ 현재 애플리케이션의 정보를 기술해둔 템플릿

  • npm install 보다 npm ci를 추천!
    • npm install은 라이브러리의 가장 최신 버전을 설치하지만,
      npm ci 는 package-lock.json에 명시된 버전을 설치하기 때문에 개발 환경과 정확히 같은 환경을 구축할 수 있다.

⬇️ 컨테이너 실행 방법, 네트워크 흐름 등 정리 보러가기 ⬇️
https://royal-terrier-541.notion.site/Docker-7c244506c05b4fc4a9876ace1bdd220e?pvs=4


출처
https://www.youtube.com/watch?v=LXJhA3VWXFA

profile
배우고 싶은게 많은 개발자📚

0개의 댓글