Docker 명령어 정리

류재환·2023년 1월 25일
0

Dockerfile을 만들 때 사용하는 다양한 명령어들을 알아보자

FROM

FROM "이미지이름:태그"
ex) FROM python:3.8.7-slim-buster

이미지 빌드에 사용할 베이스 이미지를 지정한다.
처음부터 모든 설정을 하기에는 힘드니 기존에 존재하는 이미지(베이스 이미지)를 기반으로 새로운 설정을 추가하는 형식이다.

COPY

COPY "로컬 디렉토리(파일)" "컨테이너 내 디렉토리(파일)"
ex) COPY . /app
Dockerfile이 존재하는 경로 기준 로컬 디렉토리를 컨터이너 내 디렉토리로 복사한다.
(로컬과 컨테이너와 다른 시스템과 디렉토리를 가진다)
파일을 컨테이너에서 사용하려면 반드시 사용해야하는 명령어

WORKDIR

WORKDIR "컨테이너 내 디렉토리"
ex) WORKDIR /app
Dockerfile의 RUN,CMD,ENTRYPOINT 등의 명령어를 실행할 컨테이너 경로를 지정한다.

ENV

ENV "환경변수 이름=값"
ex) ENV PYTHONPATH=/app
컨테이너 내부의 환경변수를 지정한다.

RUN

RUN "실행할 리눅스 명령어"
ex) RUN pip install -r requirements.txt
컨테이너 내에서 이미지를 빌드하는 순간에 리눅스 명령어를 실행한다. 명령어가 여러 개일 경우 && \으로 이어준다.
주로 라이브러리 설치에 많이 사용 된다.

CMD

CMD ["실행할명렁어","인자",...]
ex) CMD ["python","main.py"]
docker run으로 이 이미지를 기반으로 컨테이너를 만들 때 실행할 명령어

ENTRYPOINT

ENTRYPOINT ["실행할명렁어","인자",...]
CMD와 마찬가지로 이미지를 기반으로 컨테이너를 만들 때 실행할 명령어
CMD 명령어는 docker run 명령어를 실행할 때 인자를 넣어서 변경 가능하지만, ENTRYPOINT는 변경 불가능하다. 다시 말하면 ENTRYPOINT는 항상 실행된다.

EXPOSE

EXPOSE "포트번호"
외부에 공개할 포트번호를 명시한다.
docker run -P를 사용할 경우 호스트의 랜덤한 포트가 EXPOSE로 공개한 포트번호에 연결된다.

이런 명령어들로 Dockerfile 로 만들고 docker build를 통해 이미지를 빌드하면 이미지가 생성되는 것을 볼 수 있다.

profile
비전공자의 개발자 도전기

0개의 댓글