반응형
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
Node.js 프로젝트를 Docker로 배포하기 #3
많은 개발자들이 Node.js 프로젝트에 pm2나 forever 같은 프로세스 관리자를 사용하고 있다. 이런 프로세스 관리자를 사용하면 프로세스의 기동/중지 그리고 로그 관리를 편하게 할 수 있는 장점이 ��
medium.com
반응형
'개발' 카테고리의 다른 글
Redmine 운영 1 - 설치 (0) | 2020.12.07 |
---|---|
Jenkins (0) | 2020.11.23 |
Thread를 올바르게 생성, 시작, 중단하는 방법(feat. deamon thread와 자바런타임 메모리 공유) (0) | 2020.08.23 |
내부(inner) class와 내부(inner) static class 차이 (0) | 2020.07.07 |
[JWT] 토큰(Token) 기반 인증에 대한 소개 // [JWT] JSON Web Token 소개 및 구조 (0) | 2020.07.05 |