미국유학/CS686 DevOps

2월 3일 DevOps 수업

kwohyuno 2025. 2. 5. 15:01

 

 

 

-Container와 Virtual Machine의 차이는? 

  1. **컨테이너(Container)**는 호스트 운영체제(OS)의 커널을 공유하며, 애플리케이션과 그 의존성을 격리된 환경에서 실행하는 가벼운 가상화 기술이다.
  2. **가상 머신(Virtual Machine, VM)**은 하이퍼바이저를 통해 독립적인 운영체제를 실행하며, 각 VM은 자체 커널과 시스템 리소스를 포함하여 격리된 환경을 제공한다.
  3. 컨테이너는 리소스 사용이 가볍고 빠른 배포가 가능한 반면, VM은 완전한 격리를 제공하지만 더 많은 리소스를 소비하고 부팅 속도가 느리다. 🚀

 

 

 

🚀 Docker 기본 명령어 설명

  • docker version → Docker의 버전 정보를 확인한다.
  • docker images → 현재 로컬에 저장된 Docker 이미지 목록을 출력한다.
  • docker ps → 실행 중인 컨테이너 목록을 확인한다.
  • docker stats → 현재 실행 중인 컨테이너들의 리소스 사용량(CPU, 메모리 등)을 모니터링한다.
  • docker -v → Docker의 버전을 간단히 출력한다.
  • docker pull <이미지> → Docker Hub에서 지정한 이미지를 다운로드한다.
  • docker run <이미지> → 지정한 Docker 이미지를 실행하고 컨테이너를 생성한다.
  • docker system df → Docker가 사용 중인 디스크 공간을 확인한다.
  • docker info → Docker 데몬의 상태 및 시스템 정보를 출력한다.
  • docker rmi <이미지> → 지정한 Docker 이미지를 삭제한다.
  • docker start <컨테이너> → 중지된 컨테이너를 다시 실행한다.
  • docker system prune → 사용하지 않는 컨테이너, 네트워크, 이미지, 볼륨 등을 정리하여 공간을 확보한다.
  • docker --help → Docker 명령어 목록 및 사용법을 확인한다.
  • docker stop <컨테이너> → 실행 중인 컨테이너를 중지한다.
  • docker login → Docker Hub에 로그인하여 이미지를 푸시하거나 풀 수 있도록 한다.
  • docker logs <컨테이너> → 특정 컨테이너의 로그를 출력하여 실행 상태를 확인한다.

이 명령어들을 활용하면 Docker를 보다 효율적으로 관리할 수 있습니다! 🚀

 

 

 

 

 

Starting MongoDB
docker run -it -v /data/db:/mongodata --name mongodb -d mongo

Starting MySQL
docker run -d --name=authserver-mysql --env"=MYSQL_ROOT_PASSWORD=root"-p 6603:3306 mysql:5.7.29

Starting ElasticSearch

docker run -p 9200:9200 -p 9300:9300 -e"discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.8.0

 

 

 

🚀 Docker 옵션 설명

  • -it → 컨테이너를 인터랙티브 모드로 실행하여 터미널 입력을 받을 수 있도록 한다.
  • -d → 컨테이너를 **백그라운드(Detached Mode)**에서 실행하여 터미널을 점유하지 않도록 한다.
  • -v /호스트경로:/컨테이너경로 → **바인드 마운트(Bind Mount)**를 설정하여 호스트와 컨테이너 간 데이터를 공유한다.
  • --name <컨테이너이름> → 실행되는 컨테이너에 특정한 이름을 부여한다.
  • -p <호스트포트>:<컨테이너포트> → 컨테이너 내부의 포트를 호스트의 포트와 포트 포워딩한다.
  • --env "<환경변수>" → 컨테이너 실행 시 특정 **환경 변수(Environment Variable)**를 설정한다.

이 옵션들을 조합하여 컨테이너 실행을 유연하게 제어할 수 있습니다! 🚀

 

 

 

 

 

 

 

 

과제  중 정리 >>

 

 

(빌드 및 실행)

    docker-compose up --build -d

 

(모든 컨테이너 중지)

    docker-compose down 

 

(실행 상태 확인)

    docker ps 

 

(포트를 점유한 프로세스 확인)

    lsof -i :(포트번호)

 

(실행 중인 컨테이너 확인)

   docker ps -a 

 

(파일 내용 확인) 

cat backend/Dockerfile

 

(파일이 있는지 확인. backend폴더에서 package.json이 있는지 확인)

ls -l backend/package.json 

 

(backend 폴더에서 직접 Docker 빌드)

cd backend

docker build -t my-backend .