
예ㅔㅔㅔㅔ
# 베이스 이미지가 우분투
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
이라고 터미널에 치면 실행된다

무사히 동작~