728x90
728x90
Docker build는 무엇인가?
Dockerfile로 이미지를 만드는 것이라고 보시면 됩니다
프로젝트를 할 때 팀원들끼리 정해진 환경세팅을 할 때 주로 사용하게 될 것입니다
Docker file 작성하기
dockerfile은 image를 생성하기 위한 설정 파일이며 txt 형식입니다
이 dockerfile안에 배포할 내용들을 하나씩 적어주면 됩니다
Dockerfile 옵션
파일에 사용하게 되는 옵션들인데
글씨만 봐서는 어떤 기능들을 수행하는지 어려움이 있다
직접 하나씩 해보는것을 권장합니다
👉 FROM : 기본 이미지 [ image id ] :[ tag ]
👉 ARG : [ KEY ] = [ VALUE] 환경 변수 설정
=> build 시점에서만 사용되는 변수, --build-arg 옵션으로 오버라이딩 가능
👉 ENV : [ KEY ] = [ VALUE ] 환경 변수 설정
=> --e 옵션으로 오버라이딩 가능
👉 RUN : 도커 이미지를 빌드하는 순간 실행되는 명령어
👉 CMD : 컨테이너가 실행할 때 수행되는 명령어
=> docker run 할때 변경이 가능
=> ex) dockerfile에 CMD ["echo", "cmdText"],
docker image는 cmd_test 가정
docker run cmd_test echo hello 수행 결과 hello
👉 ENTRYPOINT : 컨테이너가 실행할 때 수행되는 명령어
=> 컨테이너가 최초에 꼭 실행되어야 할때 사용
=> ex) dockerfile에 ENTRYPOINT ["echo", "entrypointText"],
docker image는 entrypoint_test 가정
docker run entrypint_test echo hello 수행결과 entrypintText echo hello
👉 ADD : 로컬 파일 경로 / Docker image의 파일경로 추가
👉 COPY : 로컬 파일 경로 / Docker image의 파일경로 복사
👉 WORKDIR : RUN, CMD, ENTRYPOINT, COPY, ADD 명령이 실행될 작업 디렉터리 설정
👉 LABEL : [ KEY ] = [ VALUE ] 버전, 작성자, 설명 등 메타데이터 추가
👉 VOLUME : 호스트 시스템 디렉터리 마운트
👉 USER : 명령을 실행할 때 사용할 사용자 이름 or UID 설정
👉 EXPOSE : 호스트와 연결할 포트를 설정
Dockerfile 옵션 예시
아래는 각각의 옵션들을 사용하는 예시를 써놓았습니다
# 1. 기본 이미지 설정
FROM ubuntu:18.04
# 2. 환경 변수 설정
ARG MY_ARG=default_value
ENV MY_ENV=production
# 3. 도커 이미지를 빌드하는 순간 실행되는 명령어
RUN apt-get update && apt-get install -y \
python3 \
python3-pip
# 4. 로컬 파일 경로 / Docker image의 파일경로 복사
COPY ./app /app
# 5. 작업 디렉토리 설정
WORKDIR /app
# 6. 메타데이터 추가
LABEL version="1.0" \
maintainer="example@example.com" \
description="This is an example of a Dockerfile"
# 7. 호스트 시스템 디렉토리 마운트
VOLUME /data
# 8. 명령을 실행할 때 사용할 사용자 이름 or UID 설정
USER root
# 9. 호스트와 연결할 포트를 설정
EXPOSE 5000
# 10. 컨테이너가 실행할 때 수행되는 명령어
CMD ["python3", "app.py"]
# 11. 컨테이너가 최초에 꼭 실행되어야 할때 사용
ENTRYPOINT ["echo", "Welcome to my Docker Image!"]
Dockerfile 만들어보기
메모장을 열어서 간단하게 만들어봅시다
//👉 기본 이미지 설정 FROM ubuntu:16.04 //👉 작업 디렉토리 설정 WORKDIR /app //👉 test.text 파일을 app 폴더에 추가 ADD /test.txt /app //👉 호스트와 연결할 포트 설정 EXPOSE 80 //👉 컨테이너가 실행될 때 수행되는 명령어 CMD cat test.txt
Docker 빌드 해보기
test.txt 내용
hello docker test!!
docker build [option] [dockerfile 경로]
ex) docker build -t test:0.1 .
=> -t [image = test] : [tag = 0.1] .(dockerfile 이 경로안에 있을 경우)
수행 결과
docker build를 정상적으로 수행하면 아래의 사진과 같이 나오고
docker image로 생성된 이미지를 확인해 보면 아래 사진과 같이 나온다
💡 그리고 docker run으로 명령어 text.txt를 실행했을 때
hello docker test!!라는 명령어가 보이면 제대로 빌드해서 실행한 것입니다
이번 포스팅에서는 Docker build를 하는 방법에 대해서 알아보았습니다이렇게 해도 사실 복잡한게 dockerfile이기 때문에 간단한 것 부터 하나씩 해보시는것을 추천드립니다그럼 코딩이 쉬워지는 그날까지!!
728x90
300x250
'CODE > Docker' 카테고리의 다른 글
[Docker] 도커에 있는 데이터 다른 서버로 옮기기 (0) | 2024.01.11 |
---|---|
Docker hub push 해보기 (만든 image 올려보기) (0) | 2023.12.26 |
docker 이미지를 tar file로 사용하기 (save & load, export & import) (1) | 2023.12.26 |
Docker 자주 쓰는 명령어! (2) | 2023.12.26 |
Docker는 무엇이길래 다들 사용하나? (4) | 2023.12.26 |