● 실습 환경
(OS) Rocky Linux release 8.7 (Green Obsidian)
Step1. Dcokerfile 생성
※ server.js 파일에서 수신 포트 3001으로 변경합니다.
(파일) Dockerfile
----------------------------------------------------------------------------------------------------------------
FROM node:latest
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
EXPOSE 3001 # 로컬 시스템 <-> 컨테이너
CMD ["npm", "start"]
----------------------------------------------------------------------------------------------------------------
(파일) server.js
----------------------------------------------------------------------------------------------------------------
const http = require('http');
const hostname = '0.0.0.0';
const port = 3001; # 로컬 시스템 <-> 컨테이너
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
----------------------------------------------------------------------------------------------------------------
(파일) package.json
----------------------------------------------------------------------------------------------------------------
{
"name": "test",
"version": "1.0.0",
"description": "test",
"main": "server.js",
"scripts": {
"start": "node server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "yjyoo",
"license": "ISC"
}
----------------------------------------------------------------------------------------------------------------
Step2. Dockerfile 사용하여 이미지 생성
# docker build -t test:1 .
Step3. 이미지 사용하여 컨테이너 생성 및 실행
# docker run -d --name test -p 8080:3001 925fd63f2908
※ -p : 외부 포트:로컬 시스템<->컨테이너
# docker ps
Step4. 방화벽 외부 포트 오픈
# firewall-cmd --permanent --add-port=8080/tpc
# firewall-cmd --reload
# firewall-cmd --list-all
Step5. 외부 접속
# netstat -anp | grep 8080
'여러가지 > Docker & AWS' 카테고리의 다른 글
[실습](4) nodemon (0) | 2024.06.05 |
---|---|
[실습](3) 로컬 <-> 컨테이너 파일 전송 (0) | 2024.06.05 |
[실습](1) 로컬 실행 NodeJS 애플리케이션 (0) | 2024.06.04 |
[실습](0) 선수 작업 (0) | 2024.06.04 |
[정리] server.js (0) | 2024.06.03 |