Docker 개발환경 세팅하기

Docker 개발 환경 구축

회사에서 처음 클론 받은 레포지토리의 개발 환경 구축을 위해 도커환경을 구축하며 사용하던 명령어들과 도커를 이용하여 프로젝트 환경을 세팅하는 기본적인 것들에 대해서 기록하고자 글을 남깁니다.

도커란..

도커는 컨테이너 기반으로 작동하는 오픈소스 가상화 플랫폼이다.

도커에서 말하는 컨테이너란 다향한 프로그램과 실행환경을 컨테이너 단위로 추상화하여 동일한 인터페이스를 제공하고 프로그램의 배포 및 관리를 단순하게 작업할 수 있도록 도와준다.
백엔드 서버 프로그램이나 데이터 조회를 위한 데이터베이스 서버 등 서비스 운영에 필요한 모든 것을 컨테이너로 추상화하여 사용이 가능하다.

도커를 운용하며 가장 중요한것 중 하나인 컨테이너는 독자적으로 격리된 공간에서 프로세스가 동작하는 방식으로 작동한다. 기존 가상화 서비스는 주로 OS를 가상화하여 사용했는데
흔히 VMware, VitrualBox같은 가상머신을 활용하여 사용자 OS위에 새로운 OS를 씌워 사용하는 방식인데 이는 매우 무거울 뿐만아니라 느리다는 단점이 존재한다.
도커는 이러한 단점에서 자유로우며 편리함을 제공한다.

이미지
컨테이너 실행에 필요한 설정값 등을 포함하고 있는 것이며 도커에서 제공하며 본인이 원하는 버전의 서비스 이미지를 사용한다면 상태값이 변하는 일이 없다.

사용법.

기본적인 이론시간은 거두절미하고 (사실 이론은 알면 좋지만? 몰라도 된다고 생각함.. 어치피 쓰다보면 아니까?) 그냥 바로 하나 만들어보자.

계획은 이렇다 Node.js기반으로 그냥 비어있는 express앱에서 간단한 crud가 가능한 정도의 express앱을 만들자. 회사에서 만들어져있는 도커 파일을 보면서
처음보고 이게 뭔가… 싶었지만 조금 노가다하고 하나하나 공부하는 맛이 있었다. 서비스를 위한 프로젝트는 아니니 간단하게 사용해보려 한다.

  1. Dockerfile 생성.
    먼저 간단하게 도커파일을 생성 후 express앱을 띄워보는 테스트를 진행하자. 데이터베이스 연결은 나중에 작업하는걸로 하고 진행해보도록 하자.
1
2
3
4
5
6
7
8
9
10
11
12
13
# 어떤 환경에서 실행 할지 명시한다. 수많은 버전이 있다.
FROM node:12

WORKDIR /usr/app/src

# . 은 현재 디렉토리의 모든것을 /usr/src/app으로 복사한다는 의미다.
COPY . /usr/app/src

RUN npm install

EXPOSE 3000

CMD npm start
  1. app.js
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const express = require('express');
    const app = express();
    const port = 3000;

    app.get('/', function (req, res) {
    res.send('Hello World');
    });

    app.listen(port, () => {
    console.log(`http://localhost:${port} ::: express app start`);
    });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"name": "docker-node-app-test",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node app.js"
},
"author": "hanjuren",
"license": "MIT",
"dependencies": {
"axios": "^0.24.0",
"express": "^4.17.1",
"xlsx": "^0.17.4"
}
}

이런식으로 파일을 간단하게 생성해준 후 먼저 도커 이미지를 만들어준다.

docker build –tag=docker-node-app-test

build명령어를 통해 이미지를 생성해주고 이미지가 생성되었는지 확인해본다.

docker images

해당 명령어는 도커로 사용중인 이미지 목록들을 보여주며 tag에 적었던 이름으로 이미지가 생성되면 정상적으로 생성이 된것이다.



이미지 생성이 완료되었고 해당 이미지를 실행하면 express가 실행되며 접속이 가능하다. 실행하기 위한 명령어는 다음과 같다.

docker run –name=test -p 4444:3000 docker-node-app-test

name옵션에 실행할 컨테이너의 이름을 지정해주고 -p옵션은 로컬 PC에서 4444 포트로 접속시 도커에서 실행중인 3333포트로 매핑하겠다는 옵션이다. 그리고 싷행하고자 하는 이미지 이름을 나열하여 명령어를 입력하면 실행이 된다.


정상적으로 3000포트에서 실행중인 express에 접근하여 작동하는 것이 확인되었다.

다음은 데이터베이스 이미지와 함께 실행하며 express에서 mysql을 같이 사용하며 CRUD작업을 진행해보자.

Author

han Ju Ryeon

Posted on

2021-12-05

Updated on

2021-12-19

Licensed under

댓글