Docker 실행해보기

후니·2023년 5월 25일

도커

목록 보기
1/2

개요

최근 구직시장을 보면 도커가 필요 역량인 경우가 많이 보이고 도커를 사용하는것이 백엔드 개발자로써 필수 역량이라는 생각이 들었고 공부해보기로 하였다.

Docker란?

도커(Docker)는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 것이다. 실제 서버는 하나이지만 컨테이너라는 것을 만들어 컨테이너별로 다른 서버의 환경을 구축할 수 있다. 또한 도커이미지를 만들어 어디서든 같은 환경을 구축할 수도 있다.

Docker와 VM(가상머신)의 차이는?

도커는 호스트 시스템의 운영 체제 커널을 공유하여 실행되기 때문에 호스트 시스템과의 효율적인 실행이 가능하다. 가상머신에 비해 빠른 시작 속도를 가지며 더 적은 리소스를 사용하므로 가상머신보다 가볍다. 그리고 리눅스 컨테이너기술을 기반으로 만들어졌으며 컨테이너는 격리된 프로세스로 실행된다. 또한 애플리케이션과 그 종속성을 포함하는 도커 이미지를 사용하여 패키징하며 이미지를 공유하고 관리하기 때문에 이식성과 배포에 유리하다

가상머신은 각각 독립적인 운영 체제와 커널을 가지며 하이퍼바이저라는 소프트웨어를 통해 가상화된 하드웨어 위에서 실행되기 때문에 도커에 비해 무겁다. 하지만 도커보다 강력한 격리 환경을 제공한다. 또한 전체 운영 체제를 가상화하기 때문에 이미지 크기가 크고 관리가 어렵다

Docker 실행해보기

https://www.docker.com/products/docker-desktop/

진행 순서
1. Docker 데스크탑을 설치한다.

  1. Docker 데스크탑을 실행한다.
  1. Dockerfile을 작성한다.
# 우분투 기반 이미지를 선택합니다.
FROM ubuntu:22.04

# 패키지 업데이트 및 필요한 패키지 설치
RUN apt-get update && apt-get install -y nginx

#nginx 실행
CMD ["nginx", "-g", "daemon off;"]
  1. Dockerfile을 build한다.
    docker build --pull --rm -f "Dockerfile" -t ubuntu:22.04 .

빌드후 이미지가 생성되었다.

  1. Dockerfile을 run한다.
    docker run --name test ubuntu:22.04
  1. 컨테이너 접속
    docker exec -it <컨테이너 ID 또는 이름> /bin/bash

마무리

이렇게 정말 간단한 컨테이너를 만들어 보았다. 도커를 사용해본적은 있지만 있었지만 이렇게 처음부터 구축해본 경험은 매우 좋은 경험이었다. 특히 이번 공부를 진행하며 발생했던 문제는 도커를 빌드하고 이미지를 run하면 자꾸 컨테이너가 시작되자마자 종료되는 것이었다. 문제의 원인은 도커 컨테이너는 어떠한 프로세스도 실행되고 있지 않으면 종료된다는 것이었다. 이 문제의 원인을 찾느라 고생하였지만 정말 간단한 원인이라는 것을 알고 허탈하기도 했다 하지만 덕분에 많은 공부도 되었고 해결이 되어서 기분이 좋다.
도커의 컨테이너별로 환경을 격리하는 기술은 정말 매력적인 기술이라고 생각이 들었고 앞으로 많은 공부를 통해 도커 또한 나의 역량으로 만들어 버려야겠다.

0개의 댓글