본문 바로가기

Spring Boot 프로젝트

Spring Boot 프로젝트 (11.06) - 도커 파일 생성, 도커 이미지 생성, 도커 컨테이너 생성

  • index.html을 웹으로 서비스하려면 웹 서버가 필요하며, nginx는 널리 사용되는 웹 서버 중 하나이다.
  • nginx는 Docker Hub에 이미 도커 이미지로 제공되어 있으며, 이를 기반으로 Docker 이미지를 생성할 수 있다.

Docker 파일 생성

디렉토리와 파일 생성

# 프로젝트 디렉토리 생성
mkdir projects
cd projects/

# Docker 프로젝트 디렉토리 생성
mkdir docker-project-1
cd docker-project-1/

# Dockerfile 생성 및 내용 작성
vim Dockerfile
# 아래 내용을 Dockerfile에 추가

# 기본 이미지 설정
FROM nginx:latest

# index.html 파일 복사
COPY index.html /usr/share/nginx/html/

# Nginx 실행
CMD ["nginx", "-g", "daemon off;"]


# Dockerfile 내용 확인
cat Dockerfile

# index.html 파일 생성 및 내용 작성
vim index.html
# 아래 내용을 index.html에 추가

<h1> Hello </h1>

# index.html 내용 확인
cat index.html

# 디렉토리 내 파일 확인
ls

Docker 이미지 생성

docker build -t nginx-1 .

Windows 설정 (Hyper-V 및 Virtual Machine Platform 활성화)

  • 관리자 권한의 PowerShell에서 실행
# Hyper-V 및 Virtual Machine Platform 비활성화
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
dism.exe /Online /Disable-Feature:VirtualMachinePlatform

# Hyper-V 및 Virtual Machine Platform 활성화
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
dism.exe /Online /Enable-Feature:VirtualMachinePlatform /All

# 또는 PowerShell 명령어로 Virtual Machine Platform 활성화
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

 

 


 

도커 이미지 확인

생성된 이미지는 docker images 명령어로 확인

도커 이미지 삭제

docker rmi nginx-1

이미지 ID를 사용

docker rmi <Image ID>

Docker 컨테이너 생성

  1. 80 포트를 사용하는 nginx-1-1 컨테이너 생성
  • nginx-1 이미지를 사용해 80 포트로 접근 가능한 컨테이너를 생성
docker run -d -p 80:80 --name nginx-1-1 nginx-1
  1. 8081 포트를 사용하는 nginx-1-2 컨테이너 생성
  • 같은 이미지를 사용해 8081 포트로 접근 가능한 두 번째 컨테이너를 생성
docker run -d -p 8081:80 --name nginx-1-2 nginx-1

컨테이너 상태 확인

실행중인 컨테이너 : docker ps

모든 컨테이너 (종료 포함) : docker ps -a

특정 컨테이너 삭제

docker rm -f nginx-1-1
docker rm -f nginx-1-2

컨테인어 내부 접근 (bash)

docker exec -it nginx-1-1 bash