개발 PC
- 하나의 프로젝트에 복수의 서브 어플리케이션의 폴더를 두고 개발
- 각 서브 어플리케이션 폴더에는 Dockerfile 가 존재
- 프로젝트 폴더하에 서브 폴더들 안의 Dockerfile 를 제어하는 1개의 docker-compose.yml 를 작성
- docker-compose.yml 를 이용하여 개발 PC내에서의 동작을 확인
동작 | 명령어 | 결과 |
이미지 빌드 | docker-compose build | docker-compose.yml 내의 각 서비스하의 build 설정을 이용하여 이미지를 빌드 개별 docker build 를 한꺼번에 수행 ※ 서비스만 정의되고 Dockerfile 이 없는 경우는 docker-compose up 시에 docker-hub로부터 이미지를 다운로드 함. |
칵오프 | docker-compose up -d | 생성된 이미지를 container 를 생성하여 docker-compose 내의 각 서비스하의 설정 옵션을 적용하여 시작 개별 docker run 를 한꺼번에 수행 ※ -d 는 별도 shell 에서 실행시켜 다음 명령어를 실행가능 |
셧다운 | docker-compose down | 킥오프된 container 들을 stop 시키고 contiainer 들을 삭제 개별 docker stop -> docker rm 를 한꺼번에 수행 |
이미지 모두 삭제 | docker image prune -a | 위에서 작업한 image 를 버리고 새로 만들어야 할 경우 ※ 개별적으로 선택해서 지우는 방법 docker rmi [image id] |
- 정상 동작을 확인하였다면 아래와 같이 image 들을 압축파일로 생성하여 USB 또는 클라우드서버에 저장
동작 | 명령어 |
생성된 이미지들을 리스트 | docker images 결과 예) REPOSITORY TAG IMAGE ID CREATED SIZE yaho/web 1.0 d3e7f2099862 7 seconds ago 62.6 |
압축파일 생성 | docker save -o yaho_web_image.tar yaho/web ※Dockerfile이없는 서비스, 즉 docker-hub에서 다운로드하는 경우는 굳이 만들필요없음. |
- 서버에서 사용할 docker-compose.yml 작성하여 USB 또는 클라우드서버에 저장
개발 PC에서 사용한 docker-compose.yml 을 복사 ⇒ build 부분을 삭제 ※ 서비스할 서버에서는 개발환경을 셋업할 이유와 소스코드를 두어서 오픈할 이유가 없다. ※ 이러한 연유로 개발 PC에서 이미지를 생성하여 그 이미지만 릴리스하면 그만이다. |
서비스 서버
동작 | 명령어 | 결과 |
설치전 클린 | docker system prune -a --volumes | 모든 정지된 containers, images, networks, volumes 를 삭제 |
이미지 저장 | docker load -i yaho_web_image.tar | 압축된 이미지를 풀어서 repository에 저장 |
서비스 킥오프 | docker-compose up -d | 이미지들을 container화해서 서비스개시 ※ build가 제거된 docker-compose.yml 을 사용. ※ Dockerfile이 없는 서비스는 맨처음1번만 docker-hub로 부터 이미지를 다운로드 ※ 한번 up 된 서비스들은 서버를 리부팅하여도 자동으로 개시된다. |
실행중 로그보기 | docker-compose logs -f 서비스명 | 서비스명은 docker-compose 에 정의된 이름이다. |
'Commands > docker' 카테고리의 다른 글
docker-compose 개발 결과물을 서버에 릴리스 (1) | 2023.12.09 |
---|---|
docker-compose.yaml 알아보기 (0) | 2023.12.09 |
Dockerfile 알아보기 (0) | 2023.12.07 |
docker-compose 명령어 (1) | 2023.12.07 |
(docker) 기본 사용 명령 (0) | 2023.08.11 |