Dockerfile을 사용하여 컨테이너에서 Mkdir 명령으로 디렉터리 생성
Docker 컨테이너는 다양한 환경에서 소프트웨어 및 종속성을 관리하는 사실상의 방법이 되었습니다. 실제 애플리케이션으로 작업할 때 애플리케이션 컨테이너 이미지를 빌드하기 전에 Dockerfile을 생성해야 한다는 것은 의심의 여지가 없습니다.
Dockerfile을 사용하여 컨테이너에서 mkdir
명령으로 디렉토리 생성
단순히 개발자가 Docker 이미지를 만드는 데 필요한 명령을 조합하도록 허용하는 것 외에도 Dockerfile로 할 수 있는 일이 훨씬 더 많습니다. Dockerfile을 사용하여 Docker 이미지를 성공적으로 생성하려면 몇 가지 기본 명령을 알아야 합니다.
가장 많이 사용되는 명령은 다음과 같습니다.
FROM
- 사용될 상위 이미지/기본 이미지의 레이어를 생성합니다.WORKDIR
- 작업 디렉토리를 설정할 수 있습니다.COPY
- 현재 디렉터리 내용을 컨테이너의 디렉터리로 복사할 수 있습니다.PULL
- Docker 리포지토리에서 파일을 추가합니다.RUN
- 이미지를 빌드하려고 할 때 실행할 명령입니다.CMD
- 컨테이너가 시작될 때 실행할 명령을 지정합니다.ENV
- 빌드 중에 사용되는 환경 변수를 정의합니다.ENTRYPOINT
- 컨테이너가 시작될 때 실행할 명령을 지정합니다.MAINTAINER
- 이미지 작성자를 지정합니다.
위의 명령을 사용하여 Python을 기본 이미지로 사용하는 아래와 같은 Dockerfile을 만들 수 있습니다.
암호:
# base image
FROM Python
# Set your working directory
WORKDIR /var/www/
# Copy the necessary files
COPY ./app.py /var/www/app.py
COPY ./requirements.txt /var/www/requirements.txt
# Install the necessary packages
RUN pip install -r /var/www/requirements.txt
# Run the app
CMD ["echo", "Hello, Developer"]
이 Dockerfile은 콘솔에 메시지만 출력하는 간단한 Flask 애플리케이션의 일부입니다. 동일한 응용 프로그램을 만드는 데 관심이 있다면 여기 requirements.txt
파일이 있습니다.
click==8.0.4
Flask==2.0.3
gunicorn==20.1.0
itsdangerous==2.1.0
Jinja2==3.0.3
MarkupSafe==2.1.0
Werkzeug==2.0.3
기본 애플리케이션 파일을 포함하는 기본 파일 app.py
는 아래와 같습니다.
암호:
from flask import Flask
app = Flask(__name__)
def hello():
print("Hello, this is a simple Flask application")
hello()
이제 Docker 컨테이너의 파일 시스템 내에 mkdir
명령으로 디렉터리를 생성하기 위해 아래와 같이 RUN
명령을 사용합니다.
# base image
FROM Python
# Set your working directory
WORKDIR /var/www/
# Copy the necessary files
COPY ./app.py /var/www/app.py
COPY ./requirements.txt /var/www/requirements.txt
# Install the necessary packages
RUN pip install -r /var/www/requirements.txt
RUN mkdir -p /var/www/new_directory
# Run the app
CMD ["echo", "Hello, Developer"]
RUN mkdir -p /var/www/new_directory
명령을 사용하면 Docker 파일 시스템 내에 new_directory
라는 디렉터리를 생성할 수 있습니다. 이 디렉토리는 결국 위의 Docker 파일을 사용하여 빌드된 이미지를 사용하여 빌드됩니다.
그러나 아래 명령을 실행하여 Python 기반 Docker 이미지를 기본 이미지로 빌드하는 것으로 시작합니다.
isaac@DESKTOP-HV44HT6:~/my-app$ docker build -t new_image .
출력:
아래 docker images
명령을 사용하여 Docker 파일에서 Docker 이미지를 성공적으로 구축했는지 확인합니다.
$ docker images
출력:
REPOSITORY TAG IMAGE ID CREATED SIZE
new_image latest 7ab964c50876 13 minutes ago 932MB
이제 Docker 이미지가 준비되었으므로 Docker 컨테이너를 생성하고 new_directory
라는 디렉터리가 생성되었는지 확인할 수 있습니다. 아래와 같이 Docker 컨테이너 내의 디렉터리를 탐색하려면 컨테이너 내에서 Bash
를 시작해야 합니다.
$ docker run -it new_image bash
root@ea42f35d5404:/var/www#
이 디렉토리에 파일을 나열한 후 new_directory
가 생성되었음을 알 수 있습니다. 이 외에도 디렉토리 자체를 탐색하고 그 안에 새 파일을 만들 수도 있습니다.
root@ea42f35d5404:/var/www# ls
app.py new_directory requirements.txt
root@ea42f35d5404:/var/www# cd new_directory
root@ea42f35d5404:/var/www/new_directory# ls
root@ea42f35d5404:/var/www/new_directory# touch new_file
root@ea42f35d5404:/var/www/new_directory# ls
new_file
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn