2023. 5. 1. 00:17ㆍWEB개발/TIL
1. Docker hub에서 repository 생성
DockerHub: https://hub.docker.com/
1.1. DockerHub 로그인 후, Repositories에 들어가서 Create repository 클릭
1.2. Repository Name(생성할 이미지명과 일치해야 함), Private 설정 후 Create하기
2. 프로젝트 폴더에 Dockerfile 생성
FROM node:[버전번호]-alpine
WORKDIR /var/app
COPY . .
RUN npm run build
EXPOSE [포트번호]
CMD node dist/main.js
FROM: 생성할 이미지에 베이스가 될 이미지 작성
WORKDIR: 작업 디렉토리 전환
COPY: 현재 디렉토리에서의 모든 파일(호스트)을 해당 디렉토리(이미지)에 모두 복사
COPY <src><dest>
# src: 호스트 운영체제 경로
# dest: 이미지 상에서의 경로
RUN: 컨테이너 내부에서 명령어 실행
EXPOSE: 노출할 포트 지정
CMD: 해당 이미지로 컨테이너를 실행할 때 어떤 명령어를 수행할 것인지 결정
3. docker Image build/push
참고: https://yeko90.tistory.com/entry/how-to-upload-image-in-docker-hub
Dockerfile이 위치한 경로에서 명령어 작성
3.1. 도커 이미지 생성: build
# docker build -t [DockerHub ID]/[ImageName] [Dockerfile경로]
docker build -t yejii/ping-pong .
3.2. 생성한 도커 이미지 도커 레지스트리에 업로드: push
# 도커 레지스트리(Docker Registry)에 로그인하기
docker login
# docker push [DockerHub ID]/[ImageName]
docker push yejii/ping-pong
4. ubuntu에 docker 설치하기
참고: https://docs.docker.com/engine/install/ubuntu/
4.1. ubuntu 접속
4.2. 리포지토리 설정
4.2.1. apt 업데이트 및 설정
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg
4.2.2. Docker의 공식 GPG key 추가
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
4.2.3. 리포지토리 설정
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4.3. Docker 설치
4.3.1. apt 업데이트
sudo apt-get update
4.3.2. Docker 설치(최신버전/특정버전)
# Latest
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Secific version
# 1. 설치 가능한 버전 출력
apt-cache madison docker-ce | awk '{ print $3 }'
# 2. 특정 버전 설치
VERSION_STRING=5:20.10.13~3-0~ubuntu-jammy # 예시버전
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
4.3.3. hello-world 이미지를 실행하여 Docker가 성공적으로 설치됐는지 확인
sudo docker run hello-world
5. Docker 컨테이너 생성 및 실행
# 도커 로그인
sudo docker login
# 도커 레지스트리에서 이미지 가져오기
# sudo docker pull [image-name]
sudo docker pull yejii/ping-pong
# 이미지 확인
sudo docker images
# 이미지를 사용하여 컨테이너 생성 및 실행
# sudo docker run --name [container-name] -p [host-port]:[container-port] [image-name]
sudo docker run --name ping-pong -p 3001:3001 yejii/ping-pong
해당 ip와 포트 번호로 잘 실행되는지 확인하면 끝!
'WEB개발 > TIL' 카테고리의 다른 글
Context Switching과 PCB/TCB (0) | 2023.05.08 |
---|---|
프로그램, 프로세스, 스레드 (0) | 2023.05.08 |
ORM - JPA (0) | 2023.03.27 |
Lombok (0) | 2023.03.24 |
Persistence Framework와 Mybatis (0) | 2023.03.24 |