알아야 할 Docker 개념
이미지와 컨테이너의 차이점
도커 "이미지"와 "컨테이너"의 차이를 느껴야 합니다.
흐름을 이해했는지 확인하십시오.
컨테이너를 실행하는 데 필요한 이미지를 빌드하는 Dockerfile이 있습니다.
Docker 파일 빌드 컨텍스트
dockerfile의 각 행의 컨텍스트를 이해해야 합니다.
dockerfile의 각 행의 컨텍스트를 이해해야 합니다.
에이전트는
docker build
명령이 시작된 시스템입니다. docker build
명령에 에이전트 시스템의 폴더인 필수 매개변수 "빌드 컨텍스트"가 있습니다.예를 들어
COPY <src> <dest>
명령<src>
매개변수는 현재 빌드 컨텍스트 폴더에 상대적인 경로입니다.<dest>
매개변수는 이미지 파일 시스템의 현재 작업 디렉토리에 상대적인 경로입니다.예를 들어 이 파일Dockerfile 에는 다음과 같은 파일 시스템이 있습니다.
WORKDIR /src
COPY . .
빌드 컨텍스트(에이전트)
작업 디렉토리(이미지)
- docker-concepts-you-should-know - src - WebApi - WebApi.csproj - Program.cs - Dockerfile
- src - src - WebApi - WebApi.csproj - Program.cs - Dockerfile
빌드 시간 및 런타임
You are able to run apps while docker build
building image with RUN
statement. And you can run your apps in running container with ENTRYPOINT
or with docker exec
. Normally you might need to run your development tools build time, but your service or utils (like database migration) in runtime.
Build time executions are focused on image content, for example you might want to build binaries from source code. Build time you don't have your private network and volumes, so you can't have access to database.
레이아웃 캐싱
Each statement in docker file produces image cache layer on docker host machine.
Cache layers could help application build time, for example
dotnet restore
result will be cached if files copied to the docker image are the same. That is why default Dockerfile generated by visual studio copies csproj files first, and other files only after dotnet restore.
WORKDIR /src
COPY ["src/webapi/webapi.csproj", "src/webapi/"]
RUN dotnet restore "src/webapi/webapi.csproj"
COPY . .
Andrew Lock은 이 최적화에 대한 훌륭한 기사를 썼습니다.
https://andrewlock.net/optimising-asp-net-core-apps-in-docker-avoiding-manually-copying-csproj-files/
도커 작성
Docker Compose는 내부적으로 Docker를 호출합니다. 그러나 docker-compose에는 고유한 동작이 있으며 일부 명령은 다르게 작동할 수 있습니다.
진입 지점
쉘 스크립트를 진입점으로 사용할 수 있습니다. Windows 개발자 환경이 있는 경우 다음을 기억해야 합니다.
쉘 스크립트를 진입점으로 사용할 수 있습니다. Windows 개발자 환경이 있는 경우 다음을 기억해야 합니다.
*.sh text eol=lf
git update-index --chmod=+x foo.sh
또는 TortoiseGit을 사용할 수 있습니다.
Reference
이 문제에 관하여(알아야 할 Docker 개념), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/musukvl/docker-concepts-you-should-know-2jo8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)