TIL56 | EC2서버에 Docker설치 및 배포(CentOS, Node.js, Dockerfile)
2021. 12. 3. 17:26ㆍ프로그래밍
반응형
시작하기 전...
개발환경: ubuntu 18.04, node v14
서버환경: centos7, node v16
CentOS는 처음 접해봐서 명령어도 익숙하지 않았는데 nodejs로 개발한 앱을 Docker로 배포해보고 싶었다. Docker도 Django로 개발한 앱을 연습삼아 배포해본 게 다였기 때문에 익숙하지 않아서 Dockerfile을 작성하는게 막막했었는데 그래도 구글링을 거쳐 EC2 서버에 배포를 완료했다. 다음번 시행착오를 줄이기 위해 기록한다.
이 글은 저의 주관적인 경험을 작성한 글이므로 잘못되거나 불필요한 내용이 포함되어 있을 수 있습니다. 😣️
1. Dockerfile 작성
#./Dockerfile
#기반이 될 이미지
FROM node:16.13.1
# 작업디렉토리(default)설정
WORKDIR /app
# 현재 Dockerfile 있는 경로의 모든 파일을 /app 에 복사
ADD . /app
# npm install을 실행
RUN npm install
# 현재경로에 존재하는 모든 소스파일을 이미지에 복사
COPY . .
# 3000번 포트를 외부에 개방하도록 설정
EXPOSE 3000
# 컨테이너에서 실행될 명령을 지정
CMD ["npm", "start"]
2. CentOS에 Docker 설치
- yum 패키지 업데이트 및 yum-utils 설치
sudo yum update
sudo yum install yum-utils
- yum-config-manger를 통해서 docker 저장소 설정
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- docker 설치
yum install docker-ce docker-ce-cli containerd.io
- docker 패키지가 설치되면 docker 데몬을 시작하고 부팅시 docker 데몬이 자동으로 시작되도록 설정
sudo systemctl start docker
sudo systemctl enable docker
- docker 서비스가 실행중인지 확인
sudo systemctl status docker
3. docker hub에서 이미지 가져오기
- 이미지 가져오기
sudo docker pull '도커허브에 가입한 계정명'/'이미지명':'버전'
- 실행
docker run --name '컨테이너 명' -d'데몬으로 실행하기 위한 옵션' -p '호스트 포트':'컨테이너 포트' '이미지명'
반응형
'프로그래밍' 카테고리의 다른 글
재귀 개념 (Factorial, Fibonacci Number) (0) | 2021.12.31 |
---|---|
Critical rendering path (google.com 입력했을 때 일어나는 일) (0) | 2021.12.19 |
🍪 쿠키에 token 담아보내기(CORS와 Cookie옵션 설정) (0) | 2021.12.14 |
TIL55 | Docker 주요 명령어와 Dockfile (0) | 2021.12.03 |
TIL54 | Docker란 (0) | 2021.12.03 |