updated_at: 2025-05-15 07:54

콘테이너 커스터마이징 및 생성하기

nginx를 customize 한 후 컨테너를 만들어서 쿠버네티스에서 pod로 생성하는 작업을 할 예정입니다.

1. 커스터마이징을 위한 Dockerfile 생성:

Dockerfile을 생성하여 NGINX 설정을 커스터마이징합니다.

FROM nginx:latest
# 컨테이너 내부에서 NGINX 설정 파일을 변경하거나 추가합니다.
# (예: /etc/nginx/nginx.conf, /etc/nginx/conf.d/)
COPY html  /usr/share/nginx/html 
COPY conf/default.conf /etc/nginx/conf.d/default.conf
VOLUME /usr/share/nginx/html
VOLUME /etc/nginx
# 커스터마이징된 NGINX 설정을 적용하기 위한 명령어를 추가합니다.
# (예: NGINX 재시작, 특정 설정 적용)

2. 커스터마이징된 이미지 빌드:

docker build -t my-custom-nginx . # 명령어를 사용하여 커스터마이징된 이미지를 빌드합니다. `.`는 현재 디렉토리를 의미하며, Dockerfile이 위치한 디렉토리입니다.

3. 생성된 Docker Images 관리

docker ps // 동작중인 컨테이너 확인
docker ps -a // 정지된 컨테이너 확인
docker stop [CONTAINER ID]
docker rm [CONTAINER ID] // 컨테이너 삭제, 이미지 삭제전 관련 컨테이너를 먼저 삭제하여야 한다.
docker images // 생성된 현재 이미지 보기
docker rmi [이미지 id] // 이미지 삭제

4. yaml 파일 생성

  • my-custom-nginx.yaml
apiVersion: v1
kind: Pod
metadata:
  name: frontend1
  labels:
    app: nginx
spec:
  containers:
    - name: nginx
      image: my-custom-nginx
      imagePullPolicy: IfNotPresent // 로컬 docker로 부터 image 가져오기
      ports:
        - containerPort: 80

pod 생성

kubectl create -f my-custom-nginx.yaml
kubectl get pods // 생성된 pod 보기

4. 커스터마이징된 컨테이너 실행:

  • kubectl 에서 실행
kubectl port-forward [컨테이너 이름] 8888:80
  • docker 에서 실행
docker run -d -p 80:80 -p 443:443 --name [컨테이너 이름] [docker 이름] 명령어를 사용하여 컨테이너를 실행합니다.
docker run -d -p 80:80 -p 443:443 --name my-nginx-container my-custom-nginx 명령어를 사용하여 컨테이너를 실행합니다.
  • -d: 컨테이너를 백그라운드에서 실행하는 옵션
  • -p 80:80 -p 443:443는 호스트의 80번과 443번 포트를 컨테이너의 80번과 443번 포트에 매핑하는 옵션입니다.
  • --name my-nginx-container는 컨테이너 이름을 설정하는 옵션입니다. my-custom-nginx는 빌드된 컨테이너 이미지 이름입니다.

5. NGINX 설정 확인 및 수정:

  • kubectl 에서 실행
kubectl get pods // 먼저 접근할 pod를 확인한다.
kubectl exec --stdin --tty [pod name] -- /bin/bash
  • docker 에서 실행
docker exec -it <컨테이너 ID> bash 명령어를 사용하여 컨테이너에 접속합니다.
vi /etc/nginx/nginx.conf 또는 vi /etc/nginx/conf.d/<설정 파일> 명령어를 사용하여 NGINX 설정 파일을 확인하고 수정합니다.
nginx -t 명령어를 사용하여 NGINX 설정을 검사합니다.
nginx -s reload 명령어를 사용하여 NGINX 설정을 재시작합니다.
평점을 남겨주세요
평점 : 2.5
총 투표수 : 1

질문 및 답글