문제1: Container Build

tothelight·2024년 5월 21일

CKAD 예상 문제

목록 보기
1/14

다음의 조건으로 appjs:latest 컨테이너를 빌드하세요.

  • 빌드 디렉토리: ~/app_build/appjs
  • /data/ckad/app.js의 파일을 ~/app_build/appjs로 이동한 후 다음 조건에 맞게 컨테이너를 빌드하세요.
    • base image: node:12
    • app.js 파일을 컨테이너 / 디렉토리로 복사
    • 컨테이너 실행 시 node app.js 가 동작되어야 한다.

빌드한 컨테이너를 실행하세요.

$ docker run -p 8080:8080 --name appjs -d appjs
$ curl localhost:8080

명령어 흐름

# 빌드 디렉토리를 생성합니다.
$ mkdir -p ~/app_build/appjs

# 빌드 디렉토리로 이동합니다.
$ cd ~/app_build/appjs

# app.js 파일을 복사합니다.
$ cp /data/ckad/app.js .

# Dockerfile을 생성합니다.
$ cat > Dockerfile <<EOF
FROM node:12  # 베이스 이미지로 node:12를 사용합니다.
COPY app.js /app.js  # app.js 파일을 컨테이너 내로 복사합니다.
ENTRYPOINT ["node", "app.js"]  # 컨테이너가 실행될 때 node app.js가 실행되도록 설정합니다.
EOF

# Docker 이미지를 빌드합니다.
$ docker build -t appjs:latest .

# 컨테이너를 실행합니다.
$ docker run -p 8080:8080 --name appjs -d appjs

# 애플리케이션이 정상적으로 실행되는지 확인합니다.
$ curl localhost:8080

솔루션 설명

  1. 빌드 디렉토리 생성 및 이동

    $ mkdir -p ~/app_build/appjs
    $ cd ~/app_build/appjs
    • mkdir -p ~/app_build/appjs 명령어로 빌드 디렉토리를 생성하고, cd ~/app_build/appjs로 해당 디렉토리로 이동합니다.
  2. 파일 복사

    $ cp /data/ckad/app.js .
    • cp /data/ckad/app.js . 명령어로 app.js 파일을 현재 디렉토리로 복사합니다.
  3. Dockerfile 생성

    $ cat > Dockerfile <<EOF
    FROM node:12  # 베이스 이미지로 node:12를 사용합니다.
    COPY app.js /app.js  # app.js 파일을 컨테이너 내로 복사합니다.
    ENTRYPOINT ["node", "app.js"]  # 컨테이너가 실행될 때 node app.js가 실행되도록 설정합니다.
    EOF
    • cat > Dockerfile <<EOFEOF 사이에 Dockerfile 내용을 작성하여 Dockerfile을 생성합니다.
    • FROM node:12는 Node.js 12 이미지를 사용하여 빌드합니다.
    • COPY app.js /app.jsapp.js 파일을 컨테이너 내의 루트 디렉토리에 복사합니다.
    • ENTRYPOINT ["node", "app.js"]는 컨테이너 시작 시 node app.js를 실행하도록 설정합니다.
  4. Docker 이미지 빌드

    $ docker build -t appjs:latest .
    • docker build -t appjs:latest . 명령어로 현재 디렉토리에 있는 Dockerfile을 기반으로 appjs:latest 이미지를 빌드합니다.
  5. 컨테이너 실행 및 애플리케이션 확인

    $ docker run -p 8080:8080 --name appjs -d appjs
    $ curl localhost:8080
    • docker run -p 8080:8080 --name appjs -d appjs 명령어로 8080 포트를 매핑하여 백그라운드에서 appjs 컨테이너를 실행합니다.
    • curl localhost:8080 명령어로 애플리케이션이 정상적으로 실행되는지 확인합니다.

0개의 댓글