Saturday, July 21, 2018

docker-compose 이용해보기

기본적으로 docker for mac 설치를 전제로 합니다. 현재 공부 중이므로, 정확하지 않은 내용이 있을수도 있습니다.
go 개발환경을 docker를 이용해서 구축해 보려고 노력중입니다.


폴더 구성(호스트 측)


일단 기본적으로 프로젝트 폴더의 구성을 다음과 같이 함. containers폴더 밑에 앞으로 추가할 서비스들(golang, mysql 등등..)을 폴더별로 만들어 나갈 예정이고, 그 밑에 각 서비스들의 dockerfile을 작성할 계획.
docker-compose.yml은 프로젝트 작업 폴더의 루트에 두는 것이 일반적이라고 함.



docker-compose.yml


연결하여 사용하고자 하는 여러 서비스들에 대해서 기본적인 구성을 정의하는 역할을 하는 파일

version: '3'

yml의 기술 버전을 의미


build

Dockerfile이 있는 폴더 경로를 지정. 경로는 docker-compose.yml 파일이 있는 곳으로부터의 상대 패스를 작성.
docker-compose build 명령어를 실행할 경우, 지정한 폴더 바로 밑의 Dockerfile을 읽어서 실행.


volumes

호스트(로컬 PC)와 컨테이너의 폴더를 동기화 시키는 역할. 예를 들어, ./containers/nginx/html:/var/www/ 은 호스트의 ./containers/nginx/html 폴더를 컨테이너의 /var/www에 마운트 한다는 의미.


ports

포트의 공개 내용. "8080:80" 은 호스트측의 8000 포트와 컨테이너측의 80 포트를 연결한다는 의미.



nginx의 Dockerfile


FROM

Docker 이미지를 구축할 때, 기본적으로 사용하게 될 이미지를 지정. 로컬에 해당 이미지가 없을 경우, docker hub에서 자동으로 다운로드.


RUN

컨테이너 내에서 실행할 커맨드를 지정. docker-compose build 명령어를 입력할 시, 해당 커맨드가 실행.



실행


docker-compose build 커맨드를 입력하여 연결된 서비스들을 실행시킬 수 있는 이미지를 생성한 후, docker-compose up 커맨드를 입력하여 이미지의 컨테이너를 실행
브라우저에서 localhost:8080을 입력하면, 호스트측의 html폴더 밑의 index.html가 표시되는 것을 확인 가능.

이로써, 해당 docker이미지를 실행한 후, 호스트측의 index.html파일을 수정하면 자동으로 반영이 되는 것을 브라우저에서 확인 가능.

No comments:

Post a Comment

뉴라이트의 기본적인 개념과 특징

뉴라이트  한국에서 자칭 신우익을 이르는 말. 영어의 신(new) + 우익(right)의 합성어이다.  옛날 종북주의자 시절의 파시즘과 전체주의적 사상을 간직한 채 친일반민족 행위 옹호로 돌아선 사람들이다.  우파를 가장한 짝퉁 우파...