Docker 이미지를 빌드하고, 저장하고, 컨테이너로 실행하는 간단한 과정
먼저, Dockerfile을 작성합니다. 이 파일에는 애플리케이션을 빌드하기 위한 지침이 포함됩니다. 예를 들어, Dockerfile의 내용이 다음과 같다고 가정해봅시다
// Dockerfile
# Use an official Node.js runtime as a parent image
FROM node:14
# Set the working directory in the container
WORKDIR /app
# Copy the package.json and package-lock.json files
COPY package*.json ./
# Install dependencies
RUN npm install
# Copy the rest of the application code
COPY . .
# Expose the port the app runs on
EXPOSE 3000
# Define the command to run the app
CMD ["node", "app.js"]
터미널에서 다음 명령어를 실행하여 Docker 이미지를 빌드합니다
docker build --platform linux/amd64 -t [도커 빌드 이름] .
여기서 --platform linux/amd64 옵션은 이미지의 플랫폼을 지정하고, -t minibook-backend는 이미지를 minibook-backend라는 이름으로 태그합니다. 마지막의 .
은 현재 디렉토리의 Dockerfile을 사용하겠다는 의미입니다.
만약 이미지를 tar 파일로 저장하고 싶다면 다음 명령어를 실행합니다:
docker save -o [도커 빌드 이름].tar [도커 빌드 이름]
또는 풀어서 작성하면 다음과 같습니다:
docker save --output [도커 빌드 이름].tar [도커 빌드 이름]
다른 시스템에서 tar 파일로 저장된 이미지를 로드하려면 다음 명령어를 실행합니다
docker load -i [도커 빌드 이름].tar
또는 풀어서 작성하면 다음과 같습니다:
docker load --input [도커 빌드 이름].tar
빌드된 이미지를 사용하여 컨테이너를 실행합니다:
docker run -d --name [도커 컨테이너 이름] -p [3000:3000] -v /mnt/[domain?]:/mnt [도커 컨테이너 이름] (-v 뒷 부분이 이미지 업로드 시킬때 필요한 명령어)
여기서 -d는 컨테이너를 백그라운드에서 실행하도록 하고, -p 3000:3000는 호스트의 3000 포트를 컨테이너의 3000 포트에 매핑합니다. --name [도커 컨테이너 이름]
는 컨테이너에도커 컨테이너 이름
이라는 이름을 부여합니다.
전체 요약
Dockerfile 작성
이미지 빌드: docker build --platform linux/amd64 -t 도커 빌드 이름
.
(옵션) 이미지 저장: docker save -o 도커 빌드 이름
.tar 도커 빌드 이름
(옵션) 다른 시스템에서 이미지 로드: docker load -i 도커 빌드 이름
.tar
컨테이너 실행
이 과정을 통해 Docker 이미지를 빌드하고, 필요 시 저장하고, 컨테이너로 실행할 수 있습니다.