Docker
Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다. Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다.
개요
구성
- 이미지 (Image)
이미지는 컨테이너를 생성할 때 필요한 요소로 컨테이너의 목적에 맞는 바이너리와 의존성이 설치되어있음
여러 개의 계층으로 된 바이너리 파일로 존재
- 컨테이너 (Container)
호스트와 다른 컨테이너로부터 격리된 시스템 자원과 네트워크를 사용하는 프로세스
이미지는 읽기 전용으로 사용하여 변경사항은 컨테이너 계층에 저장
-> 컨테이너에서 무엇을 하든 이미지는 영향을 받지 않음
LIFE CYCLE
- build
Dockerfile을 이미지화 시켜줌
- Docker hub
github와 같이 push와 pull의 개념을 가지고 이미지를 저장하고 받아올 수 있다.
- rm & rmi
이미지와 컨테이너를 지우는 명령어
Network
주요 명령어
- container 생성 및 실행 관련 명령어
- container 생성 및 실행 : run
- container 중지 : stop
- container 실행 : start
- container 재실행 : restart
- container 관리 관련 명령어
- container 확인 : ps
- container 삭제 : rm
- container 실행 관리 관련 명령어
- container log 확인 : log
- container에 명령어 수행 : exec
- image 생성 및 실행 관련 명령어
- image 확인 : images
- image 삭제 : rmi
- image 다운로드하기 : pull
- image 업로드하기 : push
- image 태그 지정하기 : tag
Dockerfile
FROM openjdk:8-jdk-alpine
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} demo-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java","-jar","/demo-0.0.1-SNAPSHOT.jar"]
Doker-compose