Docker의 기본 동작 확인

2026. 6. 12. 15:15Docker


Ⅰ. Docker의 기본 동작 확인

 

# hello-world 컨테이너 생성 및 실행 (docker 1)

 

docker run hello-world 명령을 통해 hello-world라는 컨테이너 생성 및 실행

 

-> docker 1의 docker 동작 확인

 

 

# hello-world 컨테이너 생성 및 실행 (docker 2)

 

docker run hello-world 명령을 통해 hello-world라는 컨테이너 생성 및 실행

 

-> docker 2의 docker 동작 확인

 

 

# testos 컨테이너 생성 및 실행

 

docker container run -it --name testos debian 명령을 통해 Debian 이미지 사용하여 testos 컨테이너 생성 및 실행

 

-it 옵션을 통해 testos 컨테이너 내부로 직접 접근할 수 있는 쉘 실행하도록 설정

 

 

docker image ls 명령을 통해 이미지 목록 확인

 

docker container ls –a 명령을 통해 종료된 컨테이너까지 포함하여 컨테이너 목록 확인

 

 

# hello-world (docker 1), hello-world (docker 2), testos 컨테이너 삭제

 

docker container rm c6 00 b1 명령을 통해 hello-world (docker1), hello-world(docker2), testos 컨테이너 삭제

 

 

# hello-world, Debian 이미지 삭제

 

docker image rm debian hello-world 명령을 통해 hello-world, Debian 이미지 삭제

 

 

docker system info 명령을 통해 Docker 버전, 스토리지 드라이버,

 

런타임, 네트워크, OS 버전 등을 포함한 시스템 환경 상세 정보 확인

 

 

uname –a 명령을 통해 docker 1의 커널 정보 확인

 

 

# testos 컨테이너 생성 및 실행

 

docker container run -it --name testos ubuntu 명령을 통해 Ubuntu 이미지 사용하여 testos 컨테이너 생성 및 실행

 

-it 옵션을 통해 testos 컨테이너 내부로 직접 접근할 수 있는 쉘 실행하도록 설정

 

docker image ls -a 명령을 통해 Ubuntu 이미지가 잘 다운로드 되었는지 확인

 

docker container ls -a 명령을 통해 컨테이너가 잘 생성되었는지 확인

 

 

# testos 컨테이너 삭제

 

docker container rm testos 명령을 통해 testos 컨테이너 삭제

 

docker container ls -a 명령을 통해 컨테이너가 잘 삭제되었는지 확인

 

 

# Ubuntu:latest 이미지 삭제

 

docker image rm ubuntu:latest 명령을 통해 latest 태그가 부여된 Ubuntu 이미지 삭제

 

docker image ls - a 명령을 통해 이미지가 잘 삭제되었는지 확인

 

 

docker search nginx 명령을 통해 Nginx 이미지 검색

 

 

# Nginx 이미지 다운로드

 

docker image pull nginx 명령을 통해 Nginx 이미지 다운로드

 

(태그를 명시하지 않으면 기본적으로 latest 버전 다운로드됨)

 

docker image ls 명령을 통해 이미지가 잘 다운로드 되었는지 확인

 

 

# Nginx 이미지 다운로드

 

doker image pull nginx:1.14 명령을 통해 Nginx 이미지에 1.14 태그를 붙여서 다운로드

 

 

# webserver1 컨테이너 생성 및 실행

 

docker container run --name webserver1 nginx 명령을 통해

 

Nginx 이미지 사용하여 webserver1 컨테이너 생성 및 실행

 

-d 옵션을 통해 webserver1 컨테이너를 백그라운드로 구동

 

-p 81:80 옵션을 통해 호스트의 81번 포트와 컨테이너의 80번 포트 매핑

 

 

# webserver2 컨테이너 생성 및 실행

 

docker container run --name webserver2 nginx 명령을 통해

 

Nginx 이미지 사용하여 webserver2 컨테이너 생성 및 실행

 

-d 옵션을 통해 webserver2 컨테이너를 백그라운드로 구동

 

-p 82:80 옵션을 통해 호스트의 82번 포트와 컨테이너의 80번 포트 매핑

 

docker container ls -a 명령을 통해 웹 서버가 잘 구동되는지 확인


Ⅱ. Docker 대표 이미지

구분 Nginx Debian Ubuntu CentOS : 8
기본 목적 웹 서버 전용 이미지 범용 리눅스 기반 이미지 개발 친화적 범용 이미지 기업용 안정성 중심 이미지
기반 OS Debian (기본) Debian GNU Ubuntu

(Debian 기반 파생)
Red Hat Enterprise

Linux 기반
Alpine (경량 버전 존재) Debian Linux
대표 용도 정적 / 동적 웹 서버 애플리케이션 실행 환경 개발 및 테스트 환경 인프라 운영 환경
리버스 프록시
로드 밸런서 베이스 이미지 클라우스 서비스 기반 기업 서버
패키지 관리자 apt 

(Debian 기반 시 apt 사용)
apt - get apt dnf
apt - get
dpkg snap yum
기본 크기 약 130 ~ 150MB

(Alpine 버전은 20MB 이하)
약 120MB 약 180MB 약 200MB 이상
기본 Shell /bin/bash /bin/bash /bin/bash /bin/bash
/bin/sh
보안 업데이트

주기
공식 Nginx 릴리즈에 

따라 지속적
장기 지원 (TLS)

주기마다 안정적
5년 단위 TLS 보수적 업데이트
빠른 보안 패치 장기 안정성 보장
호환성 웹 관련 모듈 중심 광범위한 패키지 호환 클라우드 및 개발환경

호환 우수
기업용 솔루션과

호환성 높음
Docker Hub

공식 태그 예시
nginx : latest debian : bullseye ubuntu : 20.04 centos : stream8
nginx : alpine
nginx : stable debian : bookworm ubuntu : 22.04 centos : 8
주요 특징 웹서버 설치 완료 상태로

바로 사용 가능
가벼운 베이스 이미지로

커스텀에 적합
최신 라이브러리와

개발 도구 풍부
안정성과 보안성 중시
보수적 환경
장점 즉시 실행 가능한 

웹 서버 환경
안정적 최신 기술 지원 우수 안정성 
범용적 RHEL 호환성
단점 웹서버 외 커스터마이징 제한 일부 최신 패키지 지연 용량 큼 용량 큼
업데이트 잦음 패키지 호환성 낮음
적합한 

사용 사례
웹 서버 다양한 베이스 이미지용

커스텀 빌드
개발 / 테스트용

애플리케이션

컨테이너
내부망과 기업용

서버 운영 환경
리버스 프록시 컨테이너

 


Ⅲ. CentOS : 8, Ubuntu, Nginx, Debian 이미지 사용

 

docker search image centos:8 명령을 통해 CentOS : 8 이미지 검색

 

docker search ubuntu 명령을 통해 Ubuntu 이미지 검색

 

docker search nginx 명령을 통해 Nginx 이미지 검색

 

docker search debian 명령을 통해 Debian 이미지 검색

 

 

# CentOS:8 이미지 다운로드

 

docker image pull centos:8 명령을 통해 CentOS : 8 이미지 다운로드

 

 

# Ubuntu 이미지 다운로드

 

docker image pull ubuntu 명령을 통해 Ubuntu 이미지 다운로드

 

 

# Nginx 이미지 다운로드

 

docker image pull nginx 명령을 통해 Nginx 이미지 다운로드

 

 

# Debian 이미지 다운로드

 

docker image pull debian 명령을 통해 Debian 이미지 다운로드

 

docker image ls -a 명령을 통해 이미지가 잘 다운로드되었는지 확인

 

 

# 컨테이너 생성 및 실행 

 

docker container run centos:8 명령을 통해 CentOS:8 이미지 사용하여 컨테이너 생성 및 실행

 

-it 옵션을 통해 생성된 컨테이너 내부에 직접 접근할 수 있는 쉘 실행하도록 설정

 

-d 옵션을 통해 생성한 컨테이너를 백그라운드로 구동

 

 

# 컨테이너 생성 및 실행 

 

docker container run ubuntu 명령을 통해 Ubuntu 이미지 사용하여 컨테이너 생성 및 실행

 

-it 옵션을 통해 생성된 컨테이너 내부에 직접 접근할 수 있는 쉘 실행하도록 설정

 

-d 옵션을 통해 생성한 컨테이너를 백그라운드로 구동

 

 

 

# 컨테이너 생성 및 실행 

 

docker container run nginx 명령을 통해 Nginx 이미지 사용하여 컨테이너 생성 및 실행

 

-it 옵션을 통해 생성된 컨테이너 내부에 직접 접근할 수 있는 쉘 실행하도록 설정

 

-d 옵션을 통해 생성한 컨테이너를 백그라운드로 구동

 

 

 

# 컨테이너 생성 및 실행 

 

docker container run debian 명령을 통해 Debian 이미지 사용하여 컨테이너 생성 및 실행

 

-it 옵션을 통해 생성된 컨테이너 내부에 직접 접근할 수 있는 쉘 실행하도록 설정

 

-d 옵션을 통해 생성한 컨테이너를 백그라운드로 구동

 

 

 

docker container ls - a 명령을 통해 컨테이너가 잘 생성되었는지 확인

 

docker container ls -a --no-trunc 명령을 통해 container의 COMMAND 내용이 완전히 보이도록 함

 

 

 docker container ls -a 명령을 통해 컨테이너 목록 확인

 

 

# 컨테이너 전체 삭제

 

docker container rm -f f3 64 68 cb 명령을 통해 생성된 컨테이너 모두 삭제

 

docker container ls -a 명령을 통해 컨테이너가 잘 삭제되었는지 확인

 

 

# CentOS:8, Ubuntu, Nginx, Debian 이미지 삭제

 

docker image rm centos:8 ubuntu nginx debian 명령을 통해 CentOS : 8 , Ubuntu , Nginx , Debian 이미지 삭제

 

docker image ls -a 명령을 통해 이미지가 잘 삭제되었는지 확인