계속해서 바뀌는 서버 환경과 개발 환경 문제를 해결하기위해 등장했다. 기존에는 서버와 개발 환경이 변경되면 변경하기위해 시간이 들고, 문제도 발생하여 불편한 점이 많았지만 도커가 등장하면서 서버관리 방식이 굉장히 편리하게 바뀌었다.
가상머신처럼 독립적으로 실행되지만, 가상머신보다 빠르고 쉽고 효율적이다. 도커는 가상머신과 달리 개별 os에서 돌아가지 않고 컴퓨터 자원을 그대로 사용한다.
즉, 도커는 컨테이너 기반 오픈소스 가상화 플랫폼으로 도커는 컨테이너를 더 쉽게 사용할 수 있게 만든 것이다.
도커 이미지는 컨테이너를 실행하기위한 모든 정보를 가진 파일들의 모음이다. 이러한 이미지를 만들기 위해서 Dockerfile이라는 이미지 생성 파일이 필요하다.
FROM openjdk:8-jdk-alpine #베이스 이미지 파일
COPY build/libs/demo-0.0.1-SNAPSHOT.jar app.jar #컨테이너 내부로 파일 복사
ENTRYPOINT ["java","-jar","/app.jar"] #컨테이너 생성되면서 실행
docker build -t {이미지명}:{태그} {Dockerfile 파일 위치}
//ex. docker build -t my-springboot .
docker run --name {컨테이너 이름} -p {호스트 포트}:{컨테이너 포트} -d {이미지명}:{이미지태그}
//ex. docker run --name sb -p 8080:8080 -d my-springboot
docker ps
docker stop {컨테이너명}
docker rm {컨테이너명}
도커는 컨테이너 정지, 삭제가 정말 쉬워 편하다.