20220309_TIL : docker

권지현·2022년 3월 9일
0
post-thumbnail

SSH 종료 시(VM 인스턴스) 자동으로 서버가 종료되는 문제가 있다.
이 문제를 해결하기위해 Docker 프로그램 기반 배포를 진행하는 법을 배웠다.

💡 Docker : 부팅 등 운영체제의 핵심 기능을 공유하는 가상 머신.
linux 운영 체제 기반으로 작동 => 개발/배포 환경 통일, 프로그램 설치 불필요(Docker 이미지), 성능 저하 방지

FROM node:16 : node 16버전이 깔려있는 파일 다운로드
COPY . /sample_build/ : sample_build 폴더에 현재 폴더의 전체 파일(.) 복사
RUN ~ : 실행 명령어
CMD ~ : 마지막 실행 명령어(1번만 허용)
WORKDIR /sample_build/ : sample_build 폴더 내에서 작업 실행

💡 docker-compose.yaml( = .yml ) : 여러 docker파일을 한번에 실행

// docker-compose.yaml
version: "3.3"

services: //front, back, DB ...
  myfrontend: // 설정할 서비스 이름
    build:
      context: . // dockerfile 경로 지정 (. = 현위치)
      dockerfile: Dockerfile //dockerfile 지정

설정 이후 docker-compose build + docker-compose up로 파일 실행
여기서 에러가 발생한다면,
dockerfile 의 버전과 node가 설치된 vm인스턴스의 버전을 맞춰주는 것도 방법!

💡 port forwarding
docker-compose up : docker(가상 머신)에서 파일 실행 => 실제 개발자 컴퓨터에서 서버를 돌리면 연결할 수 없는 문제 발생.
개발자 컴퓨터와 docker 프로그램 컴퓨터 사이 포트를 연결해주어야한다.

// docker-compose.yaml
  ports :
     - 3000:3000
	//내 컴퓨터 접속포트:docker 접속 포트

💡 VM인스터스 Docker 관리
docker ps : docker 실행 여부 확인
sudo apt install docker.io : docker 설치
sudo apt install docker-compose : docker-compose 설치

⚡️ 에러 TIP !!

기존 접속한 포트가 강제 종료됐거나 등의 문제로 접속이 불가능한 상태와 관련된 에러의 경우, 1. sudo apt install net-tools , netstat - 포트 실행 여부 확인을 위해 netstat 설치
2. netstat -an | more : 포트 확인
3. kill 관련 포트 번호 : 강제 종료( linux 명령어 )

profile
FE 개발자 성장 기록 👩🏻‍💻

0개의 댓글