Docker 시리즈(10부): 나만의 Dockerfile 생성 및 컨테이너 생성
Dockerfile이라는 파일을 만들고 터미널에서 엽니다. 우리는 그것을 편집하기 위해 vim을 사용하고 있습니다.
1. 먼저 노드 18-alpine을 가져옵니다.
여기에서 최신 버전의 노드를 볼 수 있습니다: https://hub.docker.com/_/node
따라서 노드 이미지를 가져오고 18-alpine 태그를 지정해 보겠습니다. 알파인은 매우 가벼운 분포입니다.
RUN apk add --uppdate tini
또한 다음을 사용하여 usr/src/app를 복사할 디렉토리를 생성합니다.
RUN mkdir -p usr/src/app
그런 다음 다음을 사용하여 들어갑니다.
WORKDIR usr/src/app
4.Node는 패키지 관리자를 사용하므로 package.json 파일을 생성하여 package.json 파일에 복사합니다.
그런 다음 다음을 사용하여 종속성을 설치합니다.
RUN npm install
또한 우리는 그것을 작고 깨끗하게 유지할 것입니다.
RUN npm cache clean
또는 짧은 사용
RUN npm install && npm cache clean
COPY ..
우리는 이것을 추가하기 위해 json 형식을 사용할 것입니다.
CMD ["tini","--","node","./bin/www"]
이제 이 파일을 저장하고 터미널로 이동합니다. 이 명령을 사용하여 dockerfile을 빌드합니다.
docker build -t <random image name you wish> .
"."현재 디렉토리에 빌드하도록 지정됩니다.
약간의 문제가 있습니다
무슨 일이에요?
이미지를 보자
태그가 있는 이미지를 볼 수 있습니다.
문제가 발생하면서 이 문제에 직면했습니다. docker 파일을 간단히 변경하여 이 문제를 해결할 것입니다.
RUN npm install && npm cache clean --force
이 줄을 강제로 구현하고 의심을 없애기 위해 이제 "testimage"라는 새 이름으로 새 이미지를 만듭니다.
이번에는 완벽하게 작동했고 최신 태그를 추가했습니다.
자, 이미지를 봐
최신 태그로 이미지를 맨 위에 볼 수 있습니다.
그래서 이미지가 생성됩니다! 축하합니다!
이제 이 이미지를 사용하여 컨테이너를 만들어 보겠습니다.
docker container run -rm -p 80:3000 --name test_container testimage
-rm은 컨테이너를 종료하는 순간까지 컨테이너를 중지하려는 경우에 사용됩니다.
-p 80:3000은 80에서 실행되지만 3000에서 수신하기 때문에 사용됩니다. 또한 Dockerfile에 3000개를 노출했습니다.
또한 컨테이너에 컨테이너 이름을 설정하고 이미지 "testimage"를 사용했습니다.
이제 웹 브라우저로 이동하여 "localhost"를 입력하면 다음을 볼 수 있습니다.
터미널로 이동하면 이 로그가 표시됩니다.
이제 Ctrl + C를 눌러 중지하십시오.
이제 이 이미지를 새 이름으로 Dockerhub ID에 업로드할 수 있습니다.
docker tag testimage <dockerhub username/new image name>
자, 밀어보자
사용
docker push <docker hub username/image name>
dockerhub로 이동하여 거기에서 이미지를 확인하십시오.
축하합니다! 당신은 그것을 완료했습니다
막히면 최종 Dockerfile을 볼 수 있습니다.
From node:18-alpine
EXPOSE 3000
RUN apk add --update tini
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json package.json
RUN npm install && npm cache clean --force
COPY . .
CMD ["tini","--","node","./bin/www"]
또 보자
Reference
이 문제에 관하여(Docker 시리즈(10부): 나만의 Dockerfile 생성 및 컨테이너 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mitul3737/docker-series-part-10-create-your-own-dockerfile-and-create-a-container-from-it-2b73텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)