무엇을 컨테이너로 만드나
2023. 7. 23. 23:34ㆍ쿠버네티스/Docker
728x90
반응형
개발한 프로그램과 실행환경을 모두 컨테이너로 만든다.
MSA 환경의 Polyglot 애플리케이션 운영
Dockerfile을 활용한 컨테이너 만들기
고유의 지시어를 통해 쉽게 컨테이너를 만들수 있게 도와주는 도구
mkdir build
cd build
vi dockerfile
docker build -t imagename:tag .
# comment
FROM - 컨테이너의 BASE IMAGE (운영 환경)
MAINTANER - 이미지를 생성한 사람의 이름 및 정보
LABEL - 컨테이너이미지에 컨테이너의 정보를 저장
RUN - 컨테이너 빌드를 위해 base image에서 실행할 commands
copy - 컨테이너 빌드시 호스트의 파일을 컨테이너로 복사
ADD - 컨테이너 빌드시 호스트파일(tar, url포함)을 컨테이너로 복사
WORKDIR - 컨테이너 빌드시 명령이 실행될 작업 디렉터리 설정
ENV - 환경변수 지정
USER - 명령 및 컨테이너 실행시 적용할 유저 설정
VOLUME - 파일 또는 디렉토리를 컨테이너의 디렉토리로 마운트
EXPOSE - 컨테이너동작 시 외부에서사용할 포트 지정
CMD - 컨테이너 동작 시 자동으로 실행할 서비스나스크립트 지정
ENTRYPOINT - CMD와 함께 사용하면서 command 지정 시 사용
컨테이너 배포
docker build -t hellojs:latest .
docker login
#username, password 입력
#docker push
docker push hellojs:latest
실습
- nodejs 애플리케이션컨테이너 만들기 : hellojs
- 우분트 기반의 웹 서버 컨테이너 만들기
- 만들어놓은 컨테이너 배포하기
mkdir hellojs
cd hellojs
#도커 파일 작성
cat > hello.js
const http = require('http');
const hostname = 'container_test';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
if(req.url === '/') {
var time = new Date()
let string = 'Receive request : ' + time
res.end(string);
console.log(string)
} else {
res.end('This is not root Url');
}
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
dockerfile 작성
FROM node:12
COPY hello.js /
CMD ["node", "/hello.js"]
#######
docker build -t hellojs:latest .
3줄이니까 레이어 3개 완성
docker images or docker image ls
#이미지 확인
우분투 기반의 웹 서버 컨테이너 만들기
반응형
'쿠버네티스 > Docker' 카테고리의 다른 글
도커 엔진 (0) | 2023.10.22 |
---|---|
도커 (0) | 2023.09.14 |
컨테이너 알아보자 (0) | 2023.07.23 |
centos7-docker install (1) | 2023.07.23 |
도커 네트워크 및 포트 포워딩 (0) | 2023.06.26 |