일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- docker app
- spring boot
- DynamoDB
- 윈도우 개발서버
- docker node
- 알림톡
- 비즈뿌리오
- layout-dialect
- QureyDsl
- 카카오 알림톡
- NoSQL Workbench
- NoArgsConstructor
- docker
- push 403
- rbenv
- querydsl
- EC2
- jdk upgrade
- telegram
- modelmapper
- 개발서버
- Kotlin
- AWS
- jenkins bitbucket
- 고정 아이피
- Telegram API
- growpart
- springboot
- jenkins window
- thymeleaf
Archives
- Today
- Total
givepro
Docker 기본 (Dockerfile 작성 및 컨테이너 실행까지) 본문
반응형
전에 팀원들에게 Docker의 기본적인 작성 방법 및 실행에 대해 리뷰를 했었습니다.
포스팅으로도 남기면 좋을 것 같아서 작성해봅니다. :D
준비
Docker Container를 실행하는 과정을 간략하게 작성해봤습니다.
선행조건
- Docker 설치
- Node 설치 (꼭 노드가 아니어도 됨. 여기서는 간단하게 실행하기 위해 사용)
1. 간단한 Node 코드 작성
server.js 파일 생성 및 작성
var http = require('http');
var handleRequest = function(req, res) {
res.writeHead(200);
res.end('Hello World');
};
var www = http.createServer(handleRequest);
www.listen(8080);
console.log('server running on 8080');
Hello world 출력 가능하도록 작성
2. Node 실행 후 테스트
$ node server.js
server running on 8080
3. Dockerfile 작성
FROM node:12
WORKDIR /usr/src/app
COPY ./ ./
RUN npm install
CMD ["node", "server.js"]
4. Docker Build
$ docker build -t simple-node ./
5. Docker image 실행
$ docker run -p 3000:8080 simple-node
p 옵션 사용하는 이유
컨테이너 환경에서의 port와 컨테이너 외부에서 접속하는 port를 매핑시켜주어야 합니다.
우리가 node app에서 설정한 port는 컨테이너 환경에서의 port입니다. 하지만 우리가 브라우저를 통해 접속하는 것은 컨테이너 외부에서 접속하는 것이기에 port 정보를 매핑 시켜주어야 합니다. 예를 들어 우리가 브라우저에서 3000번 포트를 사용하여 접속한다면 3000번 포트를 컨테이너의 포트번호인 8080포트로 매핑시킬 수 있는 매핑 정보가 필요한 것입니다.
docker run -p [접속할 포트]:[컨테이너의 포트] [image-name] p 옵션을 이용하여 매핑정보를 설정할 수 있습니다.
출처
Comments