본문 바로가기
Commands/docker

docker-compose 개발 결과물을 서버에 릴리스

by 꼰대코더 2023. 12. 9.

docker-compose.yaml 알아보기 에서 생성된 docker-compose.yaml 과 web 서비스의 image 를 서비스할 서버에 릴리스 하는 법을 살펴 보자.

 

docker-compose.yaml 알아보기

docker-compose 는 시스템을 구성하는 Dockerfile 들의 build 와 container 들의 start, stop 일련의 작업들을 간편하게 해주는 이외에 네트웍의 공유등의 편의를 제공해 준다. 샘플 폴더, 화일의 구성 ── web

eldercoder.tistory.com


docker를 사용하는 장점이라하면 모듈화, 소스 숨김등이 있겠지만 뭐니뭐니해도 서비스할 서버에 동작환경을 만들지 않아도 된다는 가장 큰 장점이 있다. 단순히 서버에 docker 만 인스톨하면 귀찮은 설치 작업은 필요가 없게 된다. 

 

일단 docker를 옮기는 제일 좋은 방법은 https://hub.docker.com 의 유료회원( private image 들을 무제한 업로드 가능 ) 이라면 개발PC에서 push 하여 서비스 서버에서 pull 하여 인스톨 하는 것이다.

그냥 돈을 쓰지 않는 방법에 대해 알아보자.

 

1. 개발 PC
    Dockerfile 설정의 image 를 docker-compose build 명령으로 개발PC 에 생성한다.
    현 단계에서는 redis 서버 어플리케이션과 같은 이미 dockerhub 에 등록되어 있는 image 는 build 로 생성되지는 않는다.

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
yaho/web           1.0       d3e7f2099862   7 seconds ago   62.6MB

 

yaho/web 명의 이미지를 tar 압축 형식 화일로 저장 한다.

$ docker save -o  yaho_web_image.tar yaho/web

 

docker-compose.yaml 화일을 릴리스용으로 수정한다.

※ build 관련 부분만 삭제

※ volumens 부분에 호스트 PC의 폴더 패스에 주의.
     만약 container에서 액세스할 중요한 화일들이 있다면 그것들도 같이 서버에 똑같은 폴더 패스에 릴리스하여야 함. 

   services:
      redis:
          image: redis:latest
          ports:
               - '6379:6379'
  
      web:
           image: yaho/web:1.0
            ports:
               - "8000:8000"
            restart: always
            volumes:
               - .:/code
            depends_on:
               - redis
 

 

2. 릴리스 서버 (준비물: 릴리스용 docker-compose.yaml, yaho_web_image.tar)

개발PC에서 생성한 tar 이미지를 복원시킨다.
$ docker load -i yaho_web_image.tar
서비스의 container 들 개시
$ docker-compose up
※ redis 이미지를 로컬에 다운로드 한 후에 웹서비스가 실행된다.

 

'Commands > docker' 카테고리의 다른 글

docker / docker-compose.yml 최종 정리  (0) 2023.12.14
docker-compose.yaml 알아보기  (0) 2023.12.09
Dockerfile 알아보기  (0) 2023.12.07
docker-compose 명령어  (1) 2023.12.07
(docker) 기본 사용 명령  (0) 2023.08.11