본문 바로가기
Docker

Docker 기초 개념 정리 (09/09)

by 리아챌 2025. 2. 19.

1. Docker와 가상화 개념

Docker란?

Docker는 컨테이너 기반의 가상화 플랫폼 이다.

  • 프로그램이 실행될 환경을 미리 설정하고, 컨테이너를 통해 가상화된 환경을 제공한다.
  • 기존의 가상머신보다 가볍고 빠르게 실행 가능하다.

컨테이너(Container)란?

  • 컨테이너는 가상화된 독립적인 실행 환경이다.
  • 하나의 서버에서 여러 개의 컨테이너를 실행할 수 있다.

ISO와 가상머신

  • ISO 파일 : 설치 CD나 파일을 이미지로 만든 형태
  • 가상머신 : ISO 파일을 이용해 가상의 컴퓨터를 생성하는 방식

컨테이너와 가상머신 비교

 


2. Docker 기본 명령어

2.1 Docker 이미지 관련 명령어

 

2.2 컨테이너 실행 및 관리

 

2.3 컨테이너 내부 파일 확인 및 복사

 


3. 네트워크와 포트 설정

3.1 포트 개념

  • 포트는 데이터가 송수신되는 통신 경로 이다.
  • 웹서버의 기본 포트는 80(HTTP) 또는 443(HTTPS) 이다.

3.2 방화벽과 포트 열기

  • 방화벽은 네트워크 보안을 위해 특정 포트를 차단 하거나 허용 한다.
  • 컨테이너 내부의 포트를 외부와 연결해야 한다.

3.3 컨테이너 실행 시 포트 연결

docker container run --name my-httpd -d -p 8080:80 httpd
  • -p 8080:80 : 호스트의 8080 포트를 컨테이너의 80 포트와 연결

4. 네트워크 상태 확인

4.1 현재 접속된 네트워크 상태 확인

netstat -ant
  • 현재 열려 있는 포트 및 접속 상태 확인

4.2 특정 포트(8081) 사용 여부 확인

sudo netstat -nlp | grep 8081
  • 8081 포트가 열려 있는지 확인 가능

5. 웹서버 컨테이너 설정

5.1 Nginx 웹서버 설정

Nginx는 가볍고 빠른 웹서버 로 많이 사용된다.

docker container run --name webserver1 -d -p 8080:80 nginx
  • 8080 포트로 웹서버 실행

5.2 컨테이너 내부에 HTML 파일 추가

 
vi index.html
<html>
<head>
  <title>Docker Web Server</title>
  <style>body { background-color: #333; color: white; text-align: center; }</style>
</head>
<body>
  <h1>Welcome to Docker Web Server!</h1>
</body>
</html>
docker cp index.html webserver1:/usr/share/nginx/html/index.html
  • HTML 파일을 컨테이너 내부로 복사

6. Docker 이미지 만들기

6.1 Dockerfile 작성

FROM nginx:1.25.0-alpine
COPY index.html /usr/share/nginx/html/index.html
COPY docker_logo.png /usr/share/nginx/html/docker_logo.png
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
  • FROM : Nginx 최신 버전(1.25.0-alpine) 사용
  • COPY : HTML 및 이미지 파일 복사
  • EXPOSE : 80번 포트 개방

6.2 Docker 이미지 빌드

docker build -t my-webserver .
  • -t my-webserver : my-webserver라는 이름으로 이미지 생성
  • . : 현재 디렉토리에서 Dockerfile을 기반으로 빌드

6.3 컨테이너 실행

docker run -d -p 8080:80 my-webserver
  • 8080 포트로 웹서버 실행