본문 바로가기
프로그래밍/back end 백 엔드

Docker, nginx, php, mariaDB를 이용한 백엔드 구현 - (1)

by 어느덧중반 2021. 5. 28.
반응형

백엔드 구현에 필요한 환경들을 구축하고 내가 개발한 Flutter앱과 연동하는 게시글을 작성해보겠다. 첫 번째로 Docker 설치부터 알아보겠다.

docker 설치하기

 


도커는 셋팅하는 것이 상당히 쉽다고 한다. 도커에 대해 깊이 알려면 공부해야 할 것들이 굉장히 많은데

가장 많이 쓰이지만 간단하게 도커를 이용해 백엔드 환경을 구축하는 방법에 대해 알아보고자 한다.

단, 이 게시글에는 도커에 대한 개념, 지식이 없이 바로 설치/실습으로 간단히 들어가기 때문에 개념에 대해서는 공식 문서나 다른 게시글을 확인하시길 바란다.

나는 이번에 하게 된 스터디에서 매우 훌륭한 강사님께서 직접 지도를 해 주시기에 소중한 가르침을 기록으로 남겨둬야 겠다는 생각이 든다.

늘 Flutter로 앱 화면을 구성하고 Firebase를 통해 데이터 처리를 해본 것이 전부인데, 이번 계기로 백엔드를 구성하고 데이터 연동하는 것까지 지식을 쌓는 것이 목표이다.

 

보통 본인만의 도커를 구성해놓으면 git에 올려놓아서 새로운 프로젝트를 할 때 git에서 clone 후에 사용 가능하는 것 같다.

실제로 서비스 운영시 쓰이는 도커의 동작 방식은 docker-compose  up 으로 한 번에 실행으로 여러 컨테이너들을 실행하여 백엔드 환경을 띄우는 것이다. (컨테이너라면 php나 하나의 프로그램, db등이 될 수 있다.)

내가 배우는 것에 해당한다면 컨테이너는 총 3개가 될 것이다. (nginx, php, mariadb)

굳이 docker-compose를 쓰지 않고 각 컨테이너마다 따로 띄워준다면 각각의 이미지들을 별도로 받고 각각의 컨테이너를 띄우는 작업이 3번 반복되어야 할 것이다.

그러나 docker-compose up을 실행한다면 필요한 Nginx를 다운받아 설치하고 php를 다운받아 설치하고

db를 다운받아 설치하고 3개를 연동하며 이 모든것들이 명령어 한 번으로 실행이 끝나게 된다.

 

https://hub.docker.com/editions/community/docker-ce-desktop-windows/ 에서 다운받자. 주의할 점이 있는데 Mac 사용자의 경우 Download for Mac - Intel Chip / Apple Chip 이 구분되어 있으니 본인에게 맞는 사양으로 다운받도록 하자.

 

Docker Desktop for Windows - Docker Hub

Docker Desktop for Windows Docker Desktop for Windows is Docker designed to run on Windows 10. It is a native Windows application that provides an easy-to-use development environment for building, shipping, and running dockerized apps. Docker Desktop for W

hub.docker.com

도커 설치파일 다운로드
(mac환경) docker 설치

 

설치 후 확인

 

 

도커 실행 : Spotlight에서 docker 검색 후 실행

hub.docker.com 사이트에 접속하여 회원가입도 해주자.

 

회원가입과는 별개로 조금 전 설치된 docker를 바로 실행을 해보도록 하자. 터미널 열고 아래 명령어를 입력해보자.

  // docker / 실행해라 / 백그라운드옵션 / Host포트는 1234이고 서버포트는 80 / nginx이미지:최신버전 
$ docker run -d 1234:80 nginx:lastest

 

nginx 서버로 접속되었다. 나는 localhost:1234로 접속했고 실제 nginx의 80포트로 접속된다.

nginx가 apache에 비해 처음엔 어렵게 느껴질 수 있으나 쓰면 쓸수록 간편하고 마음이 편안해지는 서버이다.

 

docker exec : 현재 실행 중인 컨테이너에 명령을 하고 . -it 옵션을 주면 터미널 창으로 들어갈 수 있어서 컨테이너 내부의 관리가 가능해진다.

$ docker exec -it nginx-container /bin/bash

 

궁극적으로는 docker-compose를 쓰게 된다.

docker-compose는 여러 개의 컨테이너 설정을 하나의 파일(명령)으로 관리할 수 있게 해준다.

vi docker-compose.yml 를 통해 version과 services를 미리 등록해 사용할 수 있다.

이미지를 생성하면 컨테이너가 생성되고 그 컨테이너에 이미지가 담긴채 실행된다.

만약 여러개의 컨테이너를 실행하고 싶은 경우 터미널을 여러 개 띄우고 각각의 컨테이너가 실행돼야 하겠지만

docker-compose를 통해 미리 설정해둔 컨테이너들이 한 번에 실행되게 되는 것이다.

그리고 nginx를 실행할 때 포트 정보가 있어야 실행된 후에 접속할 수 있기 때문에 docker-compose 파일에 포트정보도 함께 설정해주도록 한다.

version: '3.3'

services:
  nginx:
    image: nginx:lastest
    ports:
      - "1234:80"

 

오늘은 docker 설치 및 nginx 이미지를 컨테이너에 담아 실행하는 간단한 실습만 해보았다.

다음 번에는 php, mariaDB 추가 설정을 해보도록 하겠다.

반응형

댓글