개발

Docker 시작부터 배포까지

빠빠담 2020. 9. 9. 00:12
반응형

1.설치

curl -fsSL https://get.docker.com/ | sudo sh

# docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2. 권한

sudo usermod -aG docker $USER # 현재 접속중인 사용자에게 권한주기
sudo usermod -aG docker your-user # your-user 사용자에게 권한주기

재로그인 이후 부여

# docker-compose
sudo chmod +x /usr/local/bin/docker-compose

 

3. Dockerfile

FROM node#:10 버전 선택가능

MAINTAINER KYD

RUN npm install -g pm2 node-gyp # pm2 설치

ENV NODE_ENV production # 프로덕션 모드

EXPOSE 3000 # 개방할 포트 설정

WORKDIR /app

COPY ./ /app # 서버 파일 복사

# RUN npm install --prefix /docker_node_server

CMD ["pm2-docker", "app.js"]

 

4. Run

# 이미지를 빌드하자
$ docker build -t server_a ./ # Dockerfile 경로

# 빌드된 이미지 확인
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
server_a            latest              40823914dc19        2 hours ago         2.54GB
node                10                  1cc99e24ab2d        6 days ago          912MB

# 이미지를 기반으로 컨테이너를 띄운다
$ docker run -it -d --name server -p 18212:17212 -v /home/ubuntu/log:/root/.pm2/logs server_a

# 컨테이너 확인
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                      NAMES
c71212ff6e01        server_a            "docker-entrypoint.s…"   14 minutes ago      Up 14 minutes       0.0.0.0:18212->17212/tcp   server

# 컨테이너 내부로 진입
$ docker exec --it server /bin/bash

# 실제 컨테이너 내부에 프로세스를 확인할 수 있다
$ pm2 list 

# 컨테이너 삭제 
$ docker rm -f `docker ps -a -q`

# 이미지 삭제
$ docker rmi `docker images`

 

 

 

참조)

https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html

 

초보를 위한 도커 안내서 - 설치하고 컨테이너 실행하기

초보를 위한 도커 안내서 2번째 글입니다. 도커의 기본적인 내용을 이야기 했던 첫번째 글에 이어 실제로 도커를 설치하고 컨테이너를 실행하면서 도커 명령어를 알아봅니다. 도커를 처음 접하�

subicura.com

http://labs.brandi.co.kr/2018/05/25/kangww.html

 

Docker, NodeJS, Nginx! 너로 정했다!

편집자 주아래와 같이 용어를 표기하기로 저자와 협의함Docker, NodeJS, Nginx

labs.brandi.co.kr

https://medium.com/extales/node-js-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-docker%EB%A1%9C-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0-3-ce7cf71ce874

 

Node.js 프로젝트를 Docker로 배포하기 #3

많은 개발자들이 Node.js 프로젝트에 pm2나 forever 같은 프로세스 관리자를 사용하고 있다. 이런 프로세스 관리자를 사용하면 프로세스의 기동/중지 그리고 로그 관리를 편하게 할 수 있는 장점이 ��

medium.com

 

반응형