티스토리 뷰
도커
- 오픈소스 컨테이너화 플랫폼
- 애플리케이션 개발, 배포 단순화
사용하는 이유
- 일관성 : 개발, 테스트, 운영 환경 차이 최소화
- 이식성 : 어떤 환경에서도 실행 가능
- 효율성 : cpu 자원을 효율적 사용 가능 /빠른 시작과 종료 가능
- 확장성 : 애플리케이션 확장 가능
도커 실행 요소 기본 정리
- 컨테이너 : 애플리케이션과 그 실행 파일들을 담은 패키지 / sw 실행되는 독립 환경
- 이미지 : 컨테이너를 생성하는 데 사용되는 불변의 템플릿 / 라이브러리, 설정 파일
- 도커 파일 : 이미지를 생성하기 위한 설정 파일
- 레지스트리 : 도커 이미지를 저장하고 배포하는 저장소
도커의 의존성
- 내가 만든 프로그램을 os 별로 컴파일하려면 비용 낭비 심해
- 어떤 os든, 환경이든 상관 없이 무조건 빌드 후 실행 가능한 기술: 컨테이너
- 도커는 컨테이너 기술을 대중화 시키는데 크게 기여
도커파일(Dockerfile)
1. FROM: 베이스 이미지를 지정
2. RUN: 컨테이너 내에서 명령어를 실행
3. CMD:
1. 컨테이너가 시작될 때 실행할 명령어를 지정
2. Dockerfile 내에서 여러 번 사용할 수 있으나, 마지막에 선언된 CMD만 유효하다는 점이 중요
4. COPY: 파일을 호스트 시스템에서 이미지로 복사
5. WORKDIR
1. Dockerfile 내에서 작업 디렉토리를 설정
2. 이후의 모든 RUN, CMD, ENTRYPOINT, COPY, ADD 명령어는 이 디렉토리를 기준으로 실행
3. 디렉토리가 존재하지 않으면 자동으로 생성되며 절대경로나 상대경로 모두 사용 가능
4. 만드는 이유: Docker build 해서 run 하게 되면 프로젝트 파일이 root 경로에있어 다른 파일과 충돌 위험
6. ENTRYPOINT:
1. 컨테이너가 실행될 때 반드시 실행해야 하는 주 명령을 설정
2. CMD와 같이 쓰면 CMD 는 ENTRYPOINT의 실행 인자로서 사용
3. 최종적으로 마지막에 선언된 ENTRYPOINT만 유효(CMD와 같음)
도커 컨테이너 접속하기
1. -t : 터미널 에뮬레이션 제공
2. -i : 컨테이너와 상호작용
3. -it : 대화형 터미널 세션 생성
4. exec : 실행중인 컨테이너에 명령어를 입력해야 하는 경우 사용
도커 run
1. 명령어 구조 : docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
옵션
1. --rm
2. -it
3. -d
4. -p 80:80
5. --name
도커 레지스트리
시용 이유
컨테이너 이미지를 저장하고 배포하는 중앙 저장소
버전관리
배포 편의성
보안
자동화
멀티 스테이지 빌드 개념
- Dockerfile에서 하나의 컨테이너 이미지 빌드를 여러 단계로 나누어 관리하는 방법
- 사용방법
1. Dockerfile에 여러 개의 FROM 명령어를 사용하여 각 단계를 정의
2. 각 FROM 명령어는 서로 다른 베이스 이미지로 새로운 빌드 단계를 시작
- Total
- Today
- Yesterday
- AWS
- 쿠버네티스 개념
- 백준
- ECR
- 자바
- java #스프링 #spring #server
- java
- Java #코린이 #자바
- EB
- 구간합구하기
- 백준 1965 풀이
- Java #객체 #자바기초 #자바
- 자료구조
- docker
- 코딩테스트
- k8s
- StatefulSet
- 단지번호붙이기 자바
- 쿠버네티스 오브젝트
- 행렬 테두리 회전하기 자바
- dfs
- 백준 상자 넣기 자바
- 백준 상자넣기
- 백준 그림 자바
- k8s object
- 프로그래머스
- 단지번호붙이기 JAVA
- 무중단배포
- 마법사 상어와 비바라기 자바
- EC2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |