Docker

Docker - 컨테이너(Container)

Namiz_IT 2024. 8. 13. 17:53

Docker 컨테이너 개요

Docker 컨테이너는 애플리케이션을 실행하는 데 필요한 모든 것을 하나의 패키지에 담은 가볍고 독립적인 소프트웨어 단위이다. 이 패키지에는 애플리케이션 코드, 실행 환경, 라이브러리, 설정 파일 등이 모두 포함되어 있어, 어떤 환경에서든 동일하게 작동한다.

핵심 장점

  • 일관성 : 개발, 테스트, 배포 환경에서 동일한 환경을 제공하여 문제 해결을 용이하게 한다.
  • 경량성 : 호스트 시스템의 커널을 공유하여 가볍고 빠르게 실행된다.
  • 효율성 : 서버 자원을 효율적으로 활용하여 비용을 절감한다.
  • 보안성 : 컨테이너 간 격리를 통해 높은 수준의 보안을 제공한다.
  • 이식성 : 다양한 운영체제(Linux, Windows)에서 동일하게 작동한다.

컨테이너 vs 가상 머신(VM)

가상 머신(VM_은 자체 커널, 하드웨어 드라이버, 프로그램 및 애플리케이션을 갖춘 전체 운영 체제이다. 단일 애플리케이션만 분리하기 위해 VM을 스핀업하는 것은 많은 오버헤드가 발생한다.

컨테이너는 실행에 필요한 모든 파일이 있는 고립된 프로세스일 뿐이다. 여러 컨테이너를 실행하면 모두 동일한 커널을 공유하여 더 적은 인프라에서 더 많은 애플리케이션을 실행할 수 있다.

 

컨테이너 실행해보기

CLI를 사용하여 컨테이너를 실행하는 예제

  1. CLI 터미널을 열고 다음 docker run명령을 사용하여 컨테이너를 시작합니다.이 명령의 출력은 전체 컨테이너 ID입니다.
  2. $ docker run -d -p 8080:80 docker/welcome-to-docker
    

실행 중인 컨테이너 보기

docker ps 명령을 사용하여 컨테이너가 실행 중인지 확인할 수 있습니다.

docker ps

 

다음과 같은 출력이 표시됩니다.

 CONTAINER ID   IMAGE                      COMMAND                  CREATED          STATUS          PORTS                      NAMES
 a1f7a4bb3a27   docker/welcome-to-docker   "/docker-entrypoint.…"   11 seconds ago   Up 11 seconds   0.0.0.0:8080->80/tcp       gracious_keldysh

 

이 컨테이너는 간단한 웹사이트를 표시하는 웹 서버를 실행하고있다. 더 복잡한 프로젝트를 작업할 때는 다른 컨테이너에서 다른 부분을 실행한다. 예를 들어 frontend, backend, database 에 대한 다른 컨테이너이다.

프런트엔드에 접근

컨테이너를 시작했을 때, 컨테이너의 포트 중 하나를 머신에 노출시켰다. 이것을 컨테이너의 격리된 환경을 통해 연결할 수 있도록 구성할 수 있다.

이 컨테이너의 경우 프런트엔드는 포트에서 액세스할 수 있다 . 웹사이트를 열려면 컨테이너의 포트(들)8080 열에 있는 링크를 선택 하거나 브라우저에서 주소창에 http://localhost:8080 입력하여 을 방문할 수 있다.

컨테이너를 정지

컨테이너 docker/welcome-to-docker는 중지할 때까지 계속 실행된다. docker stop 명령을 사용하여 컨테이너를 중지할 수 있다.

  1. docker ps 명령어를 입혁하여 컨테이너의 ID를 확인하라.
  2. docker stop 명령 에 컨테이너 ID 또는 이름을 입력하라.
    docker stop <the-container-id>
    

결론

Docker 컨테이너는 소프트웨어 개발 및 배포 방식을 혁신적으로 변화시키고 있다. 컨테이너를 활용하면 더욱 빠르고 안정적이며 효율적인 애플리케이션 개발 및 운영이 가능하다.

간단히 말해서, Docker 컨테이너는 애플리케이션을 포장하여 어디서든 동일하게 실행할 수 있도록 만든 가상 환경이다.


참조

https://www.oreilly.com/library/view/docker-up/9781098131814/

 

Docker: Up & Running, 3rd Edition

Docker and Linux containers have fundamentally changed the way that organizations develop, deliver, and run software at scale. But understanding why these tools are important and how they can be … - Selection from Docker: Up & Running, 3rd Edition [Book]

www.oreilly.com

 

https://docs.docker.com/guides/docker-concepts/the-basics/what-is-an-image/

 

What is an image?

What is an image

docs.docker.com

반응형