ubuntu 이미지 베이스로 nginx 설치하기

zox2m·2024년 5월 9일

cloudComputing

목록 보기
6/7

예ㅔㅔㅔㅔ

# 베이스 이미지가 우분투
FROM ubuntu:20.04

# 컨테이너 생성 과정 중 수행할 명령을 정의
RUN \
    apt-get update && \
    apt-get install -y nginx && \
    rm -rf /var/lib/apt/list/* && \
    echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \
    chown -R www-data:www-data /var/lib/nginx && \
    sed -i 's/Welcome to nginx!/Dockerfile Testing !/g' /var/www/html/index.nginx-debian.html

# 마운트할 볼륨 정의함 . volum은 host, 즉 WSL의 
# /data/volumes/(사용자이름) 에 저장됨 
VOLUME [ "/etc/nginx/sites-enabled","/etc/nginx/certs","/etc/nginx/conf.d","/var/log/nginx", "/var/www/html" ]

# 워크 디렉토리 설정 
WORKDIR /etc/nginx

# 컨테이너 시작할 때 nginx 명령어
CMD [ "nginx" ]

# http 80 번과 https 443 번 방 
EXPOSE 80
EXPOSE 443

이 dockerfile 만들어서 빌드하고 run 해주면~

와~ 재밌다~ 로딩은 좀 더 걸림.

이번엔 같은 내용을 dockerfile이 아닌 yaml 로 작성하기

 # 서비스 정의 
 # 현재 서비스는 프론트와 백으로 이루어짐 
services:
  # 프론트는 nginx, 호스트80번이 컨테이너 80에 포워딩 됨, network는 프론트네트워크사용 
  frontend:
    image: nginx:latest
    ports: 
    - "80:80"
    networks: 
    - frontend_network
  
  # 백엔드는 mysql, 환경변수가 들어감, 네트워크는 백엔드네트워크 사용d
  backend:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: examplepassword
    ports: 
    - "3306:3306"
    networks: 
    - backend_network

# 네트워크 정의. 네트워크는 프론트와 백으로 나뉘며 도커 네트워크 브릿지 사용 
networks:
  frontend_network:
    driver: bridge

  backend_network:
    driver: bridge

dockerfile은 네트워크 설정은 불가!

yaml로 쓰면 한번에 설정 ㄱㄴ

dockerfile로 컨테이너 만들고 run 여러번 하는 것과 같은 효과긴 함

yaml 은

docker compose up

이라고 터미널에 치면 실행된다

무사히 동작~

0개의 댓글