Docker, nodejs-express 앱으로 쉽게 시작
5848 단어 nodejavascriptdockerwebdev
도커, 뭔데? 어떻게 유익한가요? 쉽게 사용하는 방법?
이것은 일련의 게시물이 될 것입니다. 이것은 도커 컨테이너 사용을 시작하고 그것으로 앱을 배포하는 몇 가지 쉬운 단계를 설명하는 첫 번째 게시물이 될 것입니다. 바로 이 단계에서 우리는 hello를 호스트하기 위해 익스프레스 프레임워크와 함께 nodejs를 사용할 것입니다. 세계 앱.
그렇다면 도커란 무엇인가?
Docker는 설정 및 종속성에 대한 걱정 없이 소프트웨어를 쉽게 설치하고 실행할 수 있는 멋진 개발자 도구입니다.
어떻게 유익합니까?
이것은 용기를 만들기 때문입니다. 다층 케이크를 상상해 보세요. 여기에서 수직 조각을 가져가서 각 층에서 일부를 가져오지만 나머지 조각은 신경 쓰지 않습니다. 여기에 대한 삽화가 있습니다.
이는 마이크로 서비스를 쉽게 만듭니다. 곧 보게 될 한 가지 예는 서로 다른 환경 또는 서로 다른 nodejs 버전과 같이 매우 동일한 종속성의 서로 다른 버전으로 여러 서비스를 배포하는 것입니다.
사용 방법?
이것은 제가 가장 좋아하는 부분입니다. 말하는 것으로 충분하고 코드를 작성하기 시작합니다!!
전제 조건:
먼저 서버를 설정하고 폴더 구조를 초기화하여 시작합니다.
npm init -y
따라서 초기 설정으로 package.json 파일을 얻습니다.
이제 특급
npm add express
package.json의 스크립트 부분에 스크립트를 추가합니다.
package.json
....
"scripts": {
"start": "node index.js",
},
....
루트 디렉토리에 index.js 파일 생성
index.js
const express = require('express')
const app = express()
app.get('/', (req,res) => {
res.send('Hello World!!')
})
server.listen(3000, () => {
console.log(`Listening on port 3000`);
})
터미널 유형에서,
npm run start
브라우저로 이동하여 localhost:3000을 누르면 'Hello world!!'가 표시됩니다.
도커는 어디에 있습니까??? 다음 단계에서 제공됩니다. ;)
루트 디렉토리에서 확장자가 없는 Dockerfile이라는 이름의 파일을 다음 내용으로 생성합니다.
Dockerfile
FROM node:alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "start"]
그래서 무슨 일이야???
FROM node:alpine
-> docker에 공개적으로 존재하는 초기 이미지에서 docker를 시작하고 싶다고 말하는 건가요? docker를 사용하면 컴퓨터에 있는 nodejs 런타임이 없으므로 이 종속성이 필요하기 때문입니다. WORKDIR /app
-> 만들고 있는 컨테이너 내부의 작업 디렉토리입니다. COPY package.json .
-> 여기에서 package.json 파일을 작업 디렉토리에 복사하고 있습니다. '.' 컨텍스트 디렉토리에 복사한다는 의미입니다. RUN npm install
-> 필요한 패키지를 설치하려면 expressjsCOPY . .
-> 여기에서 다른 모든 것을 소스 코드인 작업 디렉토리에 복사합니다. CMD ["npm", "start"]
-> package.json지금 당신은 질문이 있어야 합니다. 왜 우리는 두 번 복사했습니까? 왜 마지막에 한 번만 복사하지 않았습니까?
이에 답하려면 이 도커 이미지를 사용하기 시작할 때까지 잠시 기다려 주세요. 현재 이미지가 있지만 실제로 사용할 수는 없습니다. 두 가지 작업을 수행해야 합니다.
그 후에 우리는 그것을 실행할 수 있습니다.
따라서 터미널에서 다음 코드를 실행하십시오.
docker build -t <your docker id>/<name of the image(eg. hello-world)> .
다시 . 문맥
이제 당신은 이런 것을 보게 될 것입니다
이제 이 이미지가 로컬에 있으므로 모든 이미지를 볼 수 있습니다.
docker image ls
이제 이 이미지를 허브로 가져가야 합니다. 따라서 터미널에서 다음 코드를 실행하세요.
docker push <your docker id>/<name of the image(eg. hello-world)>
이제 Dockerfile 구성에서 두 번 복사하는 것에 대한 질문에 답하려면 각 명령이 레이어를 만들기 때문에 다음을 수행합니다.
1. 프로젝트의 모든 종속성이 있는 package.json 파일을 복사합니다.
2. npm install을 사용하여 설치
3. 코드인 나머지 파일을 복사합니다.
따라서 소스 코드를 변경할 때마다 코드를 복사하는 레이어만 영향을 받고 패키지를 다시 설치하지 않습니다. 즉, 나머지 레이어는 캐시됩니다.
그런 다음 로그인한 후 도커 허브에 액세스할 수 있으며 거기에서 찾을 수 있습니다.
마지막으로 이 이미지를 실행해 보겠습니다. 하지만 docker를 실행하는 동안 수신 대기 중인 포트를 조정할 수 있으므로 이 앱은 포트 3000을 수신해야 하지만 요청을 수신해야 하는 포트를 조정할 수 있습니다. 외부 포트
따라서 터미널에서 다음 코드를 실행하십시오.
docker run -p 3005:3000 <your docker id>/<name of the image(eg. hello-world)>
짜잔!!!
가서 때려
localhost:3005/
그리고 당신은 다음을 볼 수 있어야합니다
이 게시물이 마음에 드셨기를 바랍니다. 다른 관련 게시물(실제로는 이 시리즈의 다른 부분에서 좀 더 어렵고 조금 더 발전된 부분)을 의도하고 있습니다. 저는 초보자입니다. 당신이 추천하는, 나는 당신의 소식을 듣게되어 기쁩니다. 다시 한 번 감사드립니다 !!
Reference
이 문제에 관하여(Docker, nodejs-express 앱으로 쉽게 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/omardiaa48/docker-easy-start-with-nodejs-express-app-part-1-1ien텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)