도커: 인과 아웃
10084 단어 javascriptdevopsdockerprogramming
잠수하자

의제
🎯 설정
🎯 인터랙티브 쉘
🎯 데이터 지속성(볼륨 및 nodemon 핫 리로드)
🎯 컨테이너와 로컬 머신 간의 데이터 공유
설정
NodeJs 서버를 설정하고 고정화할 수 있습니다.
index.js 파일에 다음 코드 줄을 작성합니다.const express = require('express');
const app = express();
const port = process.env.PORT || 4545;
app.use(express.json());
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
다음으로
Dockerfile를 추가하고 다음 줄을 추가합니다.Docker 데스크톱 활성화
여기서 녹색 👆🏼은 활성을 의미합니다.
이제 이미지를 구축할 수 있습니다.
빌드된 이미지 확인
docker image ls 빌드된 이미지에서 컨테이너를 실행해 보겠습니다.
실행:
docker run -v $(pwd):/app -p4000:4545 -d --name node-api-devto node-devto실행 중인 컨테이너를 테스트해 보겠습니다.
대화형 쉘
Let's open our running container in interactive shell mode
docker exec -it [container id or name] bash
docker exec -it 4b73a54c50e6 bash
컨테이너에 있는 폴더와 파일을 살펴보겠습니다.
다음을 사용하여 대화형 셸을 종료합니다.
exit컨테이너에 파일 생성
컨테이너에 파일을 만들 수 있으며 일반적으로 터미널과 상호 작용합니다.
데이터 지속성
예를 들어 클라이언트에 보내는 응답과 같이 익스프레스 서버에서 무언가를 변경하는 경우. 응답을
Hello World!에서 Hello Docker!로 변경해 보겠습니다. 코드를 업데이트하려면 실행 중인 컨테이너를 삭제하고 코드를 변경한 다음 이미지를 다시 빌드합니다.그런 다음 빌드된 이미지에서 컨테이너를 실행합니다.
브라우저를 다시 새로 고치면 변경 사항이 표시됩니다.
위의 과정은 번거로울 수 있습니다. 작은 변경 사항이 있을 때마다 이미지를 다시 빌드하지 않기 위해 지속성 데이터를 가질 수 있는 볼륨을 사용합니다.[바인드/마운트] 이를 통해 로컬 파일 시스템[폴더]의 데이터를 컨테이너 파일 시스템과 동기화할 수 있습니다. [폴더]
먼저
nodemon를 개발 종속성으로 설치하여 변경 시 자동으로 서버를 다시 시작하도록 합시다.🐋 nodemon 설치
🐋 dev 스크립트를 실행하도록 package.json을 편집합니다.
🐋 재구성 우리
Dockerfile 🐋 이미지를 재구성하자
🐋 다음으로 볼륨 및 바운드/마운트를 사용하여 빌드된 이미지에서 컨테이너를 실행합니다.
이제 서버 응답을
Hey, we made it로 변경하겠습니다. 코드 베이스 저장브라우저를 새로 고칩니다.
이피, 작동합니다! 더 이상 변경 사항을 보고 싶을 때마다 다시 빌드할 필요가 없습니다.
컨테이너와 로컬 시스템 간의 데이터 공유
대화형 셸을 다시 열겠습니다.
컨테이너에서 파일을 만들 수 있으며 로컬 파일 시스템에 나타납니다.
결론
이 게시물이 도움이 되었기를 바랍니다. 더 유용한 docker 명령, 사용 방법
docker-compose, 서비스 실행 및 해결 방법은 다음 게시물에서 확인하십시오.참조
Docker
Reference
이 문제에 관하여(도커: 인과 아웃), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/drsimplegraffiti/docker-ins-and-outs-40hb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)