일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링
- 코딩초보
- 프로그래밍
- 이클립스
- 자바프로그래밍
- Git
- JAVA기초
- 자바
- 프로그래밍언어
- 기초코딩
- eclips
- 자바기초
- 리눅스
- 메소드
- 스프링 기초
- github
- 제이쉘
- JShell
- 컴퓨터과학개론
- 알고리즘
- 자바 스프링
- 클래스
- Elk
- 데이터베이스
- 배열
- 초보코딩탈출
- spring
- 프로그래밍기초
- 초보코딩
- Java
- Today
- Total
키보드워리어
[도커] 도커의 중요성 및 관리 본문
안녕하세요 【키보드 워리어】 블로그 방문자 여러분, 안경닦이입니다.
오늘은 도커에대해 (docker) 포스팅 해보려고 합니다. 진입장벽이 높다고 알려진 서비스인데요. 주위 개발자 분들께서는 도커를 할 수 있다면 개발 환경을 만드는것이 굉장히 쉬워진다고 입을 모아 이야기합니다. 그건 이미지를 통해서 독립적이고 확장성을 보장해죽시 때문이라고 해요.
도커의 기본 체제는 리눅스 환경 os 입니다. 리눅스 환경을 쓸 수 있다면 (아마존웹서비스 경우 가능합니다.) 사용해보는것도 나쁘지 않겠네요.
도커의 중요성
1. 애플리케이션 개발·배포 편해집니다.
2. 운영환경 배포하려면 도커 이미지를 패키지로 만들어 운영서버에 전달하면 되므로 개발 운영 환경의 통합이 가능합니다.
3. 모놀리스 애플리케이션 (깃헙 /board 참고)같이 FE/BE/DB 환경 소규모 프로젝트는 강하게 연결되어 있는데
MSA로 운영할 수 있는 장점이 있습니다.
독립성이 좋다는 뜻은 언어에 종속되지 않고 변화에 빠르게 대응 가능하다는 뜻. 빠르고 동시에 환경을 제공합니다.
예를 들어 웹 서비스에서 DB컨테이너와 Server컨테이너로 분리할 수있고 서버를 동적으로 늘려서 부하를 분산할 수 있습니다.
이건 도커 스웜모드나 쿠버네티스등의 컨테이너 오케스트레이션 플랫폼을 통해 사용하는것이 일반적입니다..
도커는 이미지와 컨테이너
네 도커의 시작과 끝은 이미지와 컨테이너라고 해도 과언이 아닐 것입니다.
1. 도커는 이미지 안에 여러 컨테이너를 넣을 수 있다. 컨테이너 하나에 하나의 기능을 합니다.
2. 도커 허브를 통해 이미지를 받아올 수도 있습니다. *docker pull
Docker Hub Container Image Library | App Containerization
Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide.
hub.docker.com
3. 도커 컨테이너는 run또는 create 명령어를 통해서 실행 시킵니다.
run pull > create > start > attach 순으로, attach는 컨테이너 내부에서 환경을 실행 시킬 수 있어요.
4. 목록 확인
ps -a(중지된것 포함)
컨테이너 빌드 & 배포해보기 *자바 Spring framework 사용
만약 Spring framework로 하나의 웹서비스를 배포해보고 싶다고 한다면 어떻게 해볼 수 있을까요?
스프링 프레임 워크의 공식 깃허브 페이지에서 petclinic을 pull해와서 써볼게요.
https://github.com/spring-projects/spring-petclinic
GitHub - spring-projects/spring-petclinic: A sample Spring-based application
A sample Spring-based application. Contribute to spring-projects/spring-petclinic development by creating an account on GitHub.
github.com
Spring 어플리케이션이름이 spring-petclinic이며, 프로젝트 상단에 Dockerfile 파일을 생성해주세요.
프로젝트는 여러분들의 프로젝트를 사용해보셔도 좋아요.
어느 환경에 배포해볼까요? aws ec2 환경에서 docker를 설치하셔도 좋아요.
Dockerfile는 아래와 같은 상황입니다. 물론 여러가지 환경 변수를 추가해볼 수도 있습니다.
FROM openjdk:17-jdk
COPY build/libs/spring-petclinic*.jar /app/spring-petclinic.jar
CMD ["java","-jar","/app/spring-petclinic.jar"]
터미널을 켜보고 프로젝트 상단으로 cd 해서 가봅니다.
이미지를 만들고 컨테이너를 실행해보세요.
Docker 이미지를 빌드해서 컨테이너를 생성해보는 거죠. 그리고 도커 허브에 push해보셔도 좋구요.
docker build -t spring-petclinic-image . #빌드
docker run -p 8081:8080 spring-petclinic-image #컨테이너 실행
[내 컴퓨터에서 호출하는 포트번호] : [도커 가상환경 포트]
# -8081에 들어가서 가상환경 8080으로 들어가줘
저는 -p 포트 바인딩을 8081로 줘봤어요.
참고로 -d 명령어는 백그라운드에서 실행하는 명령어에요! 사용하지 않으면 금방 꺼지게 되요
localhost:8081는 컨테이너를 실행시켜주시면 그대로 적용 가능합니다. application-properties에서 port 를 다르게 주거나, 로컬호스트를 바꿀 수도 있어요.
이후에는 데이터베이스에도 연결해보고, 여러가지로 활용해볼 수 있습니다.
참고하시면 좋은 글
https://docs.docker.com/engine/reference/builder/
Dockerfile reference
docs.docker.com
도커 공식 문서 - 도커 만들기
https://docs.docker.com/docker-hub/
Overview
docs.docker.com
도커 허브
![](https://blog.kakaocdn.net/dn/zJm0w/btsknugeYDq/bqBYy0ar8Wz567VCmDmWW1/img.png)
'도커&쿠버네티스' 카테고리의 다른 글
[Docker]Network정리, elasticsearch에 붙이기 (2) | 2023.12.02 |
---|---|
[쿠버네티스] 서비스와 인그레스 (0) | 2023.08.20 |
[쿠버네티스] 쿠버네티스란 무엇인가?_메인 컴포넌트 (0) | 2023.08.17 |
[쿠버네티스] 쿠버네티스_아키텍처 (0) | 2023.08.16 |
쿠버네티스란? [개요] (0) | 2023.05.27 |