작은 메모장
37. 도커 파일과 도커 컴포즈 본문
도커 컴포즈
도커 컴포즈는 다중 컨테이너 애플리케이션을 관리할 수 있는 실행 도구.
여러 개의 독립적인 컨테이너를 함께 묶어서 하나의 구성 요소로 만들어준다.
도커 컴포즈를 사용하면 여러 개의 컨테이너를 간편하게 관리할 수 있다.
도커 컴포즈는 YAML(야믈) 파일에 애플리케이션을 정의한다.
이 YAML 파일은 애플리케이션의 모든 구성 요소를 포함하고 있으며, 컨테이너, 네트워크, 볼륨, 환경 변수 등을 정의한다.
이것을 통해 애플리케이션의 배포 및 관리를 자동화할 수 있다.
도커 컴포즈를 사용하면 컨테이너를 간단하게 관리할 수 있으며, 여러 개의 컨테이너를 함께 묶어서 하나의 구성 요소로 만들어준다. 애플리케이션을 보다 쉽게 관리할 수 있는 장점이 있다.
실습
새 도커 파일을 하나 만들어줄 것이다.
아래 내용을 새 파일을 만들어 입력한다.
그 후, 도커 파일을 자동으로 가져와 이미지를 생성한다.
반드시 칼리리눅스 가상환경이 인터넷에 연결되어 있는지 확인한다.
그 후, 컨테이너를 생성한다.
사이트 또한 잘 실행되는 것을 확인할 수 있다.
nginx 서버 도커 파일로 구현 - ubuntu 최신버전 - nginx 설치 - index.html 페이지 수정 - 80포트 오픈 - 데몬 실행 : nginx -g deamon off (daemon off 는 nginx 서버를 foreground에서 실행) |
이것을 구현해 볼 것이다.
일단, index.html 페이지를 대체할 index.html 파일을 하나 생성한다.
그 후, 도커 파일에 다음과 같이 입력한다.
도커 파일이 완성되면 이미지를 생성한다.
컨테이너를 만든 뒤, 접속하면 접속이 잘 되는 것을 확인할 수 있다.
특정 파일을 컨테이너에 업로드 할 때는 ADD 명령어를 사용하면 된다.
이미지를 생성한다.
컨테이너를 만든 뒤, 접속하면 도커 파일이 랜더링되어 사이트에 올라간 것을 확인할 수 있다.
시작하기 전, 비교용 DB 컨테이너를 하나 만들어준다.
실습을 위해 도커 컴포즈를 설치한다.
그 후, 작업할 디렉토리를 하나 만들어준다.
도커 컴포즈 파일을 만든 후, 해당 내용을 입력한다.
그 후, 도커 컴포즈를 실행한다.
아주 중요한 내용인데, 도커 컴포즈는 해당 파일이 있는 폴더 내에서 관리한다.
즉, 도커 컴포즈를 무시하고 일반 도커 상에서 컨테이너나 네트워크 등을 삭제하면 꼬일 수 있다는 것.
즉, ps 명령어를 사용하여 관리하면 큰일난다는 의미다.
그럼 어떻게 해야하느냐?
다시 말하지만, 도커 컴포즈는 해당 파일이 있는 폴더 내에서 관리한다.
때문에 관리하는 폴더 내에서 도커 컴포즈를 도커 쓰듯이 사용하면 된다.
아래와 같이 관리하면 된다.
조금 더 자세한 설정을 해보자.
docker-compose 파일을 더 자세히 설정할 것이다.
실행하기 전, 충돌이날 경우가 생길 수 있기 때문에, 관련된 디랙토리를 전부 삭제한다.
이후 도커 컴포즈를 실행하면, 서비스가 실행되는 것을 확인할 수 있다.
[도커 컨테이너 nginx conf] ----> 1, 2, 3번 컨테이너 서버 로드 밸런싱 1. 4번 컨테이너는 nginx 도커 이미지를 다운로드하고, 로드밸런서가 적용된 conf로 수정 후 새로운 이미지로 생성 2. 1, 2, 3 컨테이너는 기본 nginx 이미지를 다운로드 받아 index.html 페이지들을 수정하여 새로운 이미지로 생성 3. 도커 컴포즈에서 4개의 생성된 이미지들을 자동으로 배포하고 관리 |
이 과정을 해볼 것이다.
컨테이너가 4개가 생성되며,
1, 2, 3번 컨테이너는 nginx 웹 서버를,
4번 컨테이너는 로드 밸런싱 및 프록시 서버의 역할을 한다.
디렉토리 구조부터 설정한다.
nginx_lb 디렉토리의 도커 파일을 생성한다.
내용은 아래를 따른다.
도커 파일 실행에 필요한 nginx 설정파일도 생성해준다.
내용은 아래를 따른다.
web01 디렉토리에도 도커 파일을 생성한다.
내용은 아래를 따른다.
도커 파일 실행에 필요한 index 페이지도 생성한다.
web01에서 만든 요소들을 전부 나머지 디렉토리로 복사한다.
결과적으로 아래와 같은 구조의 파일이 생성된다.
최상단 디렉토리에 도커 컴포즈 파일을 만든 후, 아래의 내용을 입력한다.
이제 도커 컴포즈를 실행한다.
잘 접속되는 것을 확인할 수 있다.
'실더스 루키즈 교육' 카테고리의 다른 글
39. 취약점 진단 실습 2 (0) | 2024.02.27 |
---|---|
38. 취약점 진단 실습 1 (0) | 2024.02.26 |
36. 도커 실습 (0) | 2024.02.22 |
35. 도커와 마이크로서비스 (0) | 2024.02.21 |
34. 인공지능과 데이터 3 (0) | 2024.02.07 |