가상화를 사용하는 이유?
안정성을 높이고 리소스를 더 잘 활용할 수 있습니다.
발주기가 짧아지면서 배포는 더 자주 이루어집니다. 프로그램은 더 잘게 쪼개어져 관리는 더 복잡해집니다.
도커는 linux 컨테이너 기반의 오픈소스 가상화 플랫폼입니다.
하나의 서버에 여러 개의 프로그램
※컨테이너: 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리 단순화
-OS레벨의 가상화로 프로세스를 격리시켜 동작하는 방식
linux 컨테이너: 시스템의 나머지 부분과 분리된 1개 이상의 프로세스 세트
이미지는 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로 상태값을 가지지 않고 변하지 않습니다
docker build .
(이미지 빌드)
docker images
(이미지 아이디 확인)
docker run imageID
(이미지 실행)
docker ps
(현재 실행중인 프로세스를 보여줌)
docker ps -a
(종료된 모든 프로세스 까지 다 보여줌)
docker rm CONTAINER ID
(종료된 프로세스 삭제)
docker rmi IMAGE ID
(이미지 삭제)
docker rmi docker images -a -q
이미지 모두 삭제
docker rm -a -q -f
컨테이너 모두 삭제 docker rm docker ps -a -q
docker stop CONTAINER ID
(종료 끄기)
docker exec -it CONTAINER ID /bin/bash OR sh
컨테이너의 터미널로 접속한다( ex)환경변수파일(dotenv)을 만들경우 사용 )
docker run -p 2000:3005 imageID
2000번(local)으로 연결했을때 3005번(docker 속 포트)으로 열어줘 = localhost:2000/boards로 요청 3005(index.js 안 app.listen(3005))