2026. 6. 12. 15:15ㆍDocker
Ⅰ. 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 명령을 통해 이미지가 잘 삭제되었는지 확인
'Docker' 카테고리의 다른 글
| Docker 컨테이너 운용 (0) | 2026.06.12 |
|---|---|
| Docker 컨테이너 네트워크 관리 & Docker 네트워크 관리 (0) | 2026.06.12 |
| Docker 컨테이너 관리 & Docker 볼륨 관리 (0) | 2026.06.12 |
| Docker 이미지 관리 & Docker 이미지 업로드 (0) | 2026.06.12 |
| Docker 실습 환경 구성 & Docker 설치 (0) | 2026.06.12 |