간단한 Docker Compose 프로젝트 생성
이제 Docker Compose 가 제대로 설치되어 작동하므로 설정을 테스트하기 위해 간단한 프로젝트를 만들어 보겠습니다. 웹 서버와 Redis 데이터베이스가 있는 기본 웹 애플리케이션을 만들 것입니다.
프로젝트 디렉토리 생성
먼저 프로젝트 전용 디렉토리를 만들어 보겠습니다.
mkdir ~/project/docker-compose-test
cd ~/project/docker-compose-test
Docker Compose 파일 생성
이제 nano 텍스트 편집기를 사용하여 docker-compose.yml 파일을 만들어 보겠습니다.
nano docker-compose.yml
다음 내용을 파일에 복사하여 붙여넣습니다.
version: "3"
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
redis:
image: redis:alpine
이 Docker Compose 파일은 두 개의 서비스를 정의합니다.
web: 로컬 디렉토리에서 콘텐츠를 제공하는 Nginx 웹 서버
redis: 캐싱 또는 세션 데이터를 저장하기 위한 Redis 데이터베이스
Ctrl+O를 누른 다음 Enter를 눌러 파일을 저장한 다음 Ctrl+X를 눌러 nano 를 종료합니다.
HTML 콘텐츠 생성
웹 서비스가 제공할 간단한 HTML 페이지를 만들어 보겠습니다.
mkdir -p html
nano html/index.html
다음 내용을 파일에 복사하여 붙여넣습니다.
<!DOCTYPE html>
<html>
<head>
<title>Docker Compose Test</title>
</head>
<body>
<h1>Hello from Docker Compose!</h1>
<p>If you can see this, your Docker Compose setup is working correctly.</p>
</body>
</html>
Ctrl+O를 누른 다음 Enter를 눌러 파일을 저장한 다음 Ctrl+X를 눌러 nano 를 종료합니다.
Docker Compose 프로젝트 실행
이제 Docker Compose 프로젝트를 시작해 보겠습니다.
docker-compose up -d
-d 플래그는 컨테이너를 백그라운드에서 실행합니다 (분리 모드). 다음과 유사한 출력이 표시되어야 합니다.
Creating network "docker-compose-test_default" with the default driver
Pulling web (nginx:alpine)...
Pulling redis (redis:alpine)...
[...]
Creating docker-compose-test_web_1 ... done
Creating docker-compose-test_redis_1 ... done
서비스가 실행 중인지 확인
서비스가 제대로 실행 중인지 확인해 보겠습니다.
docker-compose ps
다음과 유사한 출력이 표시되어야 합니다.
Name Command State Ports
------------------------------------------------------------------------------------
docker-compose-test_redis_1 docker-entrypoint.sh redis ... Up 6379/tcp
docker-compose-test_web_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8080->80/tcp
웹 애플리케이션에 액세스
이제 LabEx 인터페이스에서 웹 브라우저를 열고 http://localhost:8080으로 이동하여 웹 애플리케이션에 액세스할 수 있습니다. "Hello from Docker Compose!" 메시지가 표시되어야 합니다.
또는 curl을 사용하여 명령줄에서 웹 서버를 확인할 수 있습니다.
curl http://localhost:8080
앞서 만든 HTML 콘텐츠가 표시되어야 합니다.
Docker Compose 프로젝트 중지
테스트를 마쳤으면 Docker Compose 프로젝트를 중지할 수 있습니다.
docker-compose down
다음과 유사한 출력이 표시되어야 합니다.
Stopping docker-compose-test_web_1 ... done
Stopping docker-compose-test_redis_1 ... done
Removing docker-compose-test_web_1 ... done
Removing docker-compose-test_redis_1 ... done
Removing network docker-compose-test_default
축하합니다! Docker Compose 를 성공적으로 설치하고 "command not found" 오류를 해결했으며 간단한 다중 컨테이너 애플리케이션으로 설정을 테스트했습니다.