도커와 도커파일
7282 단어 devopsprogrammingclouddocker
Docker는 소프트웨어 프로젝트를 컨테이너화할 수 있는 플랫폼입니다. 컨테이너화, 소스 코드, 패키지 및 해당 버전의 종속성을 하나의 컨테이너에 포함하고 프로세스로 실행한다는 의미입니다.
Docker와 VM의 차이점은 Docker가 게스트 운영 체제 없이 호스트 커널 OS를 사용하여 컨테이너를 실행한다는 것입니다. 반면 VM에서는 서버 하드웨어가 가상화됩니다. 각 VM에는 자체 게스트 OS가 있습니다. 이로 인해 Docker가 가벼워지고 리소스가 더 적게 소모되며 앱이 더 빠르게 회전합니다.
애플리케이션을 도커화하는 방법은 무엇입니까?
애플리케이션은 먼저 컨테이너에 포함할 청사진 또는 스냅샷을 보유하여 도커화됩니다. 이 청사진을 도커 이미지라고 합니다. 이미지는
Dockerfile
에 지정된 다음 이 이미지를 실행하여 이 특정 스냅샷의 컨테이너를 생성합니다.Dockerfile 만들기
이 파일은 일반적으로 응용 프로그램의 루트 디렉터리에 있습니다. 이 파일의 각 줄은 이미지 빌드 방법에 대한 지침과 계층을 나타냅니다.
노드에서 실행되는 간단한 익스프레스 API를 예로 들어 보겠습니다.
1_ Dockerfile에 상위 이미지 지정
FROM node:17-alpine
이것은 Dockerfile의 첫 번째 계층입니다. 이 노드 이미지를 가져와서 컨테이너에 설치합니다. 콜론 뒤의 태그는 태그라고 하며 끌어야 하는 노드의 버전을 지정합니다.
2_ 컨테이너에서 작업할 디렉토리를 지정합니다.
FROM node:17-alpine
WORKDIR /app
3_ package.json을 복사하고 컨테이너에 모든 종속성을 설치합니다.
FROM node:17-alpine
WORKDIR /app
COPY package.json .
RUN npm install
4_ 전체 소스코드를 복사하여 컨테이너에 붙여넣기.
FROM node:17-alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
사본 옆의 첫 번째 점은 전체 디렉토리를 가져오는 것을 의미합니다. 두 번째 점은 컨테이너에 디렉터리를 붙여넣을 위치입니다./app이 아닌 점인 이유는
WORKDIR /app
를 지정한 후 컨테이너의 모든 경로가/app에 상대적이기 때문입니다.5_ 마지막으로 앱을 실행합니다.
FROM node:17-alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ['node' , 'start']
이미지 구축:
Docker build -t [IMAGE_NAME] -p [HOST_PORT]:[EXPOSED_PORT] .
컨테이너 내에서 이미지 실행:
Docker run —name [CONTAINER_NAME] [IMAGE_NAME]
위 명령의 대안은 다음과 같은 통합 작성 파일을 만드는 것입니다.
version: '3.8'
services:
api:
build: ./api
container_name: api_container
ports:
- '3000:3000'
volumes:
- ./api:/app
- ./app/node_modules
달리다
docker-compose up
볼륨이란 무엇입니까?
이미지는 읽기 전용이므로 테스트 환경에서 소스 코드를 변경할 때마다 이미지를 빌드하는 것은 의미가 없습니다. 여기서 볼륨을 사용하면 매우 편리해집니다. 볼륨을 사용하면 새 이미지를 빌드하지 않고도 로컬 코드에서 컨테이너의 기존 코드로 파일을 매핑할 수 있습니다.
몇 가지 유용한 도커 명령
- Docker ps
- List all running containers.
- Docker ps -a
- List all containers
- Docker images
- List all images
- Docker build -t [IMAGE_NAME] -p [HOST_PORT]:[EXPOSED_PORT] .
- Build the image
- Docker run —name [CONTAINER_NAME] [IMAGE_NAME]
- Run the image inside a container.
자원:
Docker docs
Reference
이 문제에 관하여(도커와 도커파일), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/evanhameed99/docker-and-dockerfile-8jp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)