슈코딩

[Docker] 도커? 도커는 왜 사용해야 할까? 본문

코딩공부/Docker

[Docker] 도커? 도커는 왜 사용해야 할까?

Roshu 2022. 10. 14. 22:30

 

Docker 란?

Docker는 애플리케이션을 신속하게 구축하고 테스트 및 배포할 수 있는 컨테이너 기반의 소프트웨어 플랫폼입니다.

소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 

실행하는 데 필요한 모든것이 컨테이너에 포함되어 있습니다. Docker에는 Image라는 개념이 존재하는데 Docker Image는

실행환경, 실행하는 코드, 필요한 라이브러리, 설정 파일을 한곳에 모아둔 파일을 의미하고, Image를 사용하여 실행한 것이 컨테이너입니다.

 

Docker의 장점

  • 환경에 구애받지 않고 애플리케이션을 신속하게 배포하거나 확정할 수 있으며 코드가 문제없이 실행될 것을 확신 할 수 있습니다.
  • 코드를 더 빨리 전달하고, 애플리케이션 운영을 표준화하고, 코드를 원활하게 이동하고, 리소스 사용률을 높여 비용 절감할 수 있습니다.
  • Docker를 사용하지 않는 사용자보다 7배 더 많은 소프트웨어를 더 빠르게 제공할 수 있습니다.
  • Docker기반 애플리케이션을 Local 개발 시스템에서 AWS의 배포로 원활하게 이전할 수 있습니다.
  • 환경을 표준화하고 언어 스택 및 버전 간의 충돌을 제거함으로써 애플리케이션을 더욱 빠르게 제공합니다.

 

Docker와 가상 머신의 차이점?

가상 머신(VM)은 서버 하드웨어를 가상화하는 반면, 컨테이너는 서버의 운영 체제를 가상화합니다.

Docker는 컨테이너를 위한 운영 체제이며, 컨테이너를 실행하려는 각 서버에 Docker Engine이 설치되어 컨테이너를 구축,

시작 또는 중단하는 데 사용할 수 있는 간단한 명령 세트를 제공합니다.

 

 

Docker를 활용한 배포 (명령어)

  1. EC2에 접속
  2. git clone ( 깃허브 프로젝트 클론 )
  3. sudo apt-get update (라이브러리 관련 업데이트)
  4. sudo apt-get remove docker docker-engine docker.io ( 도커관련 파일이 남아있으면 에러가 발생하여 제거)
  5. sudo apt install docker.io ( 도커 설치 )
  6. docker --version (도커 설치확인)
  7. sudo systemctl start docker (도커 실행)
  8. sudo systemctl enable docker (인스턴스 시작될때 자동으로 docker 실행)
  9. sudo apt install docker-compose ( docker-compose 설치)
  10. sudo docker-compose -f docker-compose.yml up -d --build (Docker 빌드, -f : 환경설정 설정, -d : 백그라운드 실행)
  11. sudo docker-compose -f docker-compose.yml down (Docker 컨테이너 내리기)
  12. sudo docker-compose exec -it {해당 컨테이너 id} /bin/sh ( 컨테이너 접속 )
  13. sudo docker exec -it {해당 컨테이너 id} /bin/sh (compose로 접속이 불가능 할시 컨테이너 접속)
  14. sudo docker logs {컨테이너 이름} -f ( 로그 확인 )
  15. sudo docker restart {컨테이너 이름} ( 컨테이너 재시작 )

 

 

 

 

 

Comments