DockerFile 다루기

 

 

 

 

Dockerfile

 

도커 이미지를 생성할 수 있는 설정 파일
사용자가 이미지를 조합하기 위해 명령 줄에서 호출할 수 있는 모든
명령을 포함하는 텍스트 문서
완성된 이미지를 생성하기 위해 필요한 컨테이너, 패키지, 소스코드,
명령어 등을 하나의 파일에 기록
도커에서 이 파일을 읽어 자동으로 작업을 수행한 뒤 완성된 이미지
로 만들어 줌
깃과 같은 개발도구를 통해 애플리케이션의 빌드 및 배포를 자동화
할 수 있음

 

 

 

도커
이미지
생성
방법
1

 

기존 이미지로 컨테이너 생성 후 작업 완료된 컨테이너를 다시 이미
지로 생성

 

 

 

도커
이미지
생성
방법
2

 

Dockerfile로 필요한 패키지, 소스코드, 명령어 등을 작성 후 빌드

 

 

 

 

 

 

Tomcat 공식 이미지 Dockerfile 확인
Docker hub tomcat 이미지 검색 시 태그별 Dockerfile을 볼수있는
경로를 제공해 줌

 

 

 

 

 

 

 

 

 

Dockerfile
작성

 

 

컨테이너에서 수행해야 할 작업을 명시
정해진 형식과 명령어로 작성해야 함
문서 파일로 작성
한 줄에 하나의 명령어로 구성
명령어를 명시하고 뒤에 옵션을 추가
명령어는 대/소문자 상관없음(일반적으로 대문자로 표기)
위에서 아래로 한 줄씩 차례대로 실행됨
주석은 # 기호를 사용

 

 

 

 

 

 

Dockerfile
명령어

 

 

 

 

 

 

 

Dockerfile
작성
예제
① D:\DockerWeb 디렉터리 생성
② ROOT.war 파일 DockerWeb 디렉터리에 저장
③ Dockerfile 작성 후 저장

 

 

 

 

 

 

 

 

 

 

[Dockerfile]

# 베이스 이미지를 tomcat:8.5.72-jdk8로 지정
FROM tomcat:8.5.72-jdk8
# 작성자 라벨 생성
LABEL maintainer "kh<kh@iei.com>“
# 버전 라벨 생성
LABEL version="1.0“
# /usr/local/tomcat/webapps 디렉터리에 ROOT.war 파일
추가
ADD ROOT.war /usr/local/tomcat/webapps
# Timezone 환경변수를 Asia/Seoul로 변경
ENV TZ=Asia/Seoul
# 이미지에서 8080포트 사용
EXPOSE 8080
# 컨테이너 실행 시 catalina.sh 파일 자동 실행
CMD ["catalina.sh","run"]

 

 

 

 

Dockerfile
빌드
작성한 Dockerfile을 이용해 이미지를 생성하는 과정
docker build [옵션] <Dockerfile이 존재하는 디렉터리 경로>

 

 

 

 

 

 

 

 

 

 

 

DockerFile
다루기

 

Dockerfile 빌드

> docker build –t mytomcat:1.0 d:\DockerWeb

 

 

 

 

 

 

 

 

생성된
이미지
상세
정보
보기

 

> docker inspect mytomcat:1.0

 

 

 

 

 

 

 

 

생성된
이미지로
컨테이너
실행

 

docker run -d --name myweb2 -p 81:8080 --link mydb:db mytomcat:1.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Programming > DOCKER' 카테고리의 다른 글

도커컨테이너관리하기  (0) 2022.05.03
도커 이미지 관리하기  (0) 2022.05.03
도커의 구조와 특징  (0) 2022.05.02
도커 (docker) 설치하기  (0) 2022.05.02
docker를 사용하는 이유  (0) 2022.05.02

 

 

 

 

 

도커컨테이너관리하기

 

 

도커
컨테이너

 

도커 이미지의 실행 가능한 인스턴스
개별 애플리케이션의 실행에 필요한 실행환경을 독립적으로 운용

 

 

 

 

 

앞서 지웠기 때문에 톰캣 설치부터 시작됨 

docker run -d --name myweb -p 80:8080 tomcat:8.5.72-jdk8

 

 

 

 

 

 

 

 

 

 

 

내가 가진 컨테이너 목록

docker ps -a

 

 

 

아이디로 컨테이너 조회 

docker inspect 93eac9619c8f

 

 

 

 

 

 

 

 

 

 

 

 

 

docker stop myweb

 

 

 

 

docker start myweb

 

docker restart myweb

 

 

 

 

상태 확인

 

docker stats my web

 

무한 로딩이 될 것인데 

ctrl + c 눌러서 빠져나옴 

 

 

테스트를 위해 D:test.txt를 만들

 

파일 카피 하기

docker cp d:\test.txt myweb:/root

 

 

 

컨테이너 내부 프로세스에 접근할 수 있는 명령어 exec

 

 

ls /root

를 추가로 입력하면 내부에 존재하는 파일을 볼 수 있다. 

 

test.txt 확인 가능

 

 

빠져나오기 

exit

 

 

 

 

컨테이너 삭제 

docker rm -f myweb

 

myweb 컨테이너가 사라진 모습 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Programming > DOCKER' 카테고리의 다른 글

DockerFile 다루기  (0) 2022.05.03
도커 이미지 관리하기  (0) 2022.05.03
도커의 구조와 특징  (0) 2022.05.02
도커 (docker) 설치하기  (0) 2022.05.02
docker를 사용하는 이유  (0) 2022.05.02

도커 이미지 관리하기

 

 

 

도커 이미지

 

컨테이너를 만들고 실행하기 위한 읽기 전용 파일(템플릿)
모든 컨테이너는 이미지 기반으로 생성됨
컨테이너 실행에 필요한 파일과 설정 값 등을 포함하고 있음

 

파일설정값을 읽기전용으로 만들어놓은것이고 

 

 

도커 이미지와 컨테이너

 

컨테이너는 필요한 파일과 설정을 이미지에서 읽기전용으로 가져다
사용하고, 변경된 사항만 컨테이너 계층에 별도 저장
하나의 이미지로 여러 컨테이너에서 사용 가능

 

 

 

 

 

도커허브 (Docker Hub)

도커에서 공식적으로 제공하고 있는 중앙 이미지 저장소
도커 계정을 가지고 있으면 누구든 이미지 업로드/다운로드가 가능
기본적인 리눅스 운영체제부터 웹서버, 데이터베이스, 각종 애플리
케이션 등의 다양한 종류의 이미지를 도커 레지스트리에서 내려 받
아 컨테이너로 생성

 

이미지를 풀받아 컨테이너로 만들어줄것을 요ㅕ청하면 

푸시하여 업로드하는 것도 가능

 

 

 

 

 

 

 

 

도커이미지이름

 

[저장소이름/]이미지이름[:태그]
-저장소 이름 생략 시 도커 허브 공식 이미지로 인식
-태그는 버전을 나타냄
-태그 생략 시 최신 버전(latest)으로 인식

 

 

 

 

이미지검색방법1

 

도커 허브 공식 홈페이지에서 검색
https://hub.docker.com/

 

 

 

 

 

 

 

 

이미지검색방법2

 

도커 엔진에서 명령어로 검색
docker search <키워드>

 

 

- NAME : [저장소이름/]이미지이름
- DESCRIPTION : 설명
- STARS : 도커 사용자로부터 즐겨찾기 된 수
- OFFICIAL : 공식 이미지
- AUTOMATED : 자동화 빌드 설정 여부

 

 

 

이미지 다운로드

 

 

다운받은
이미지
목록
조회

 

 

 

이미지세부정보 조회

image id 는 목록 중 유일하게 구분될 수 있게만 작성하면 됨

 

 

도커
이미지
추출

 

도커 이미지를 별도의 파일로 저장할 때 사용

 

 

 

 

도커
이미지
추출

 

추출된 파일을 다시 도커 내 이미지로 로드

 

 

도커
이미지
이름
추가

 

기존 이미지를 새로운 이름으로 추가

 

 

 

 

도커
이미지
삭제

 

 

 

 

 

 

 

 

 

 

 

docker pull tomcat:8.5 입력시 다운로드 시작 

 

다운로드 완료

 

 

 

내가 가진 이미지 목록 검색 

docker images

 

 

 

해당 이미지 검색

docker image inspect feecc4e7d7e2

 

 

 

 

이미지가 겹치지않는다면 앞의 세네자리만 쳐도 해당 이미지를 잘 찾아온다. 

현재 이미지가 한개밖에없으므로 fee 정도만 쳐도 이미지를 잘 찾아오는 모습이다. 

 

 

 

다른 환경에서 사용하기위해 백업용, 물리적으로 옮기기위해서는 이 이미지를 별도의 파일로 만들어놓고 저장을 할 수 도 있다. 

 

도커 이미지 추출

 

 

docker save -o d:\\tomcat_image tomcat:8.5

 

 

 

 

 

 

 

 

백업용파일로 만들기위해 로드하기 

 

docker load -i d:\\tomcat_image

 

 

 

 

별도의 이름이나 태그걸기 

 

docker tag tomcat:8.5 mytom:1

 

 

 

 

 

존재하는 이미지 삭제하기 

 

tomcat 8.5를 태그한 삭제기에 태그가 지워짐 

docker rmi mytom:1

mytom이 지워진 모습이다. 

 

 

 

 

 

톰캣 8.5도 삭제 해보자 

docker rmi tomcat:8.5

 

잘 delete 된 모습을 확인할 수 있다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Programming > DOCKER' 카테고리의 다른 글

DockerFile 다루기  (0) 2022.05.03
도커컨테이너관리하기  (0) 2022.05.03
도커의 구조와 특징  (0) 2022.05.02
도커 (docker) 설치하기  (0) 2022.05.02
docker를 사용하는 이유  (0) 2022.05.02

 

 

 

도커의 구조와 특징

 

 

 

 

 

 

 

도커(Docker)란 ?


  • 애플리케이션을 개발/배포/실행하기 위한 플랫폼
  • 컨테이너를 사용하여 애플리케이션 및 지원 구성 요소를 개발
  • 리눅스 자체 기능을 사용하여 프로세스 단위의 격리 환경을 제공
  • 배포 용량과 시간을 단축하고, 성능 손실을 최소화 시킴

 

 

 

 

 

도커 구조


출처 : https://docs.docker.com/get-started/overview/

 

 

 

 

 

 

도커 엔진과 도커 데몬 (dockerd)


  • 도커엔진: 외부에서 Docker API 요청을 받아 Docker 객체와 서비스들을 관리컨테이너를 생성하고 관리하는 주체
  • 도커 데몬 : 도커 프로세스가 실행되어 입력 받을 준비가 된 상태

 

 

 

 

 

 

도커 클라이언트 (docker)


  • 입력된 명령어를 Docker API 형태로 도커 데몬에게 전달
  • 도커 엔진의 수행 결과를 반환 받아 사용자에게 출력

 

 

 

 

 

 

도커 레지스트리 (Registry)


  • 도커에서 사용되는 이미지들을 저장하고 공유해주는 원격 저장소
  • 공개 레지스트리(Docker Hub)와 사설 레지스트리 사용 가능

 

 

 

 

 

이식성


  • 한 번 만들어두면 어디에서든 동작하는 소프트웨어의 특성

 

 

 

 

 

 

상호 운용성


  • 여러 조직이나 시스템과 연계하여 사용할 수 있는 소프트웨어의 특성

 

 

 

 

 

 

 

'Programming > DOCKER' 카테고리의 다른 글

도커컨테이너관리하기  (0) 2022.05.03
도커 이미지 관리하기  (0) 2022.05.03
도커 (docker) 설치하기  (0) 2022.05.02
docker를 사용하는 이유  (0) 2022.05.02
STS에서 Maven build하기  (0) 2022.05.02

 

 

 

 

 

도커 설치


  • 다양한 운영체제에서 사용 가능(리눅스, 윈도우, 맥 OS X)
  • 설치 및 설정 방법은 운영체제에 따라 조금씩 다르지만, 설치된 이후 사용방법은 동일
  • 공식 홈페이지 :  https://www.docker.com/  
  • 가이드 홈페이지 :  https://docs.docker.com/   

 

 

 

 

 

 

 

 

 

 

 

Docker Desktop for Windows 설치


 

① 도커 공식 홈페이지 접속 (https://www.docker.com)

② 상단 메뉴 중 Developers 클릭

 

 

 

 

 

 

③ Download for Windows 클릭
④ 다운받은 설치 파일 실행

 

 

 

 

 

⑤ WSL2 설치 체크 후 OK
⑥ Unpacking 완료 후 윈도우 재부팅

  •  재부팅 후 잠시 기다리면 서비스 계약 변경 동의 창 팝업 됨
※ WSL2(Windows Subsystem for Linux 2) :
윈도우에서 경량 가상화 기술을 사용해 리눅스를 구동할 수 있 도록 도와주는 기능

 

 

 

 

 

 

 

 

 

 


⑦ I accept the terms 체크 후 Accept 버튼 클릭
⑧ WSL2 오류 팝업 창에서 계속 버튼 클릭

 

 

 

 

 

 

 

⑨ WSL2 설치 팝업 창에서 링크 클릭
⑩ Linux 커널 업데이트 패키지 다운로드 후 Next로 설치
⑪ WSL2 설치 팝업 창에서 Restart

 

순서에 유의하며 번호대로 설치한다. 

 

 

 

 

 

 

 

 

⑫ Docker 첫 실행 화면에서 Skip tutorial 클릭
⑬ 윈도우 명령 프롬프트(cmd) 에서 도커 버전 확인

 

 

 

 

 

 

 

 

 

  • 다음과 같이 도커 버전이 출력되면 정상 설치가 완료 된 것이다. 
  • cmd를 실행시켜 다음과같이 입력 
docker -v

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Docker Desktop for Windows 설치 오류


만일 다음과 같은 오류가 발생한다면 Windows 기능 켜기/끄기의 Hyper-V 기능을 찾아 체크한다.
만약 체크가 이미 되어 있으면 해당 기능을 삭제 및 재 설치한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

  • cmd창에 다음과같이 입력하면 버전, 단축어나 도커에 대한 설명을 확인할 수 있다. 
docker -help

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Programming > DOCKER' 카테고리의 다른 글

도커컨테이너관리하기  (0) 2022.05.03
도커 이미지 관리하기  (0) 2022.05.03
도커의 구조와 특징  (0) 2022.05.02
docker를 사용하는 이유  (0) 2022.05.02
STS에서 Maven build하기  (0) 2022.05.02

 

 

 

docker를 사용하는 이유

 

 

 

 

 

 

쿠버네티스란 무엇인가?

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하

kubernetes.io

 

 

 

 

 

 

 

 

소프트웨어 운영 플랫폼의 변화


 

 

 

  • Tranditional Deployment
  • 초기 조직은 애플리케이션을 물리 서버에서 실행했었다. 한 물리 서버에서 여러 애플리케이션의 리소스 한계를 정의할 방법이 없었기에, 리소스 할당의 문제가 발생했다. 예를 들어 물리 서버 하나에서 여러 애플리케이션을 실행하면, 리소스 전부를 차지하는 애플리케이션 인스턴스가 있을 수 있고, 결과적으로는 다른 애플리케이션의 성능이 저하될 수 있었다. 이에 대한 해결책은 서로 다른 여러 물리 서버에서 각 애플리케이션을 실행하는 것이 있다. 그러나 이는 리소스가 충분히 활용되지 않는다는 점에서 확장 가능하지 않았으므로, 물리 서버를 많이 유지하기 위해서 조직에게 많은 비용이 들었다.
  • Virtualized Deployment가상화를 사용하면 물리 서버에서 리소스를 보다 효율적으로 활용할 수 있으며, 쉽게 애플리케이션을 추가하거나 업데이트할 수 있고 하드웨어 비용을 절감할 수 있어 더 나은 확장성을 제공한다. 가상화를 통해 일련의 물리 리소스를 폐기 가능한(disposable) 가상 머신으로 구성된 클러스터로 만들 수 있다.
  • 각 VM은 가상화된 하드웨어 상에서 자체 운영체제를 포함한 모든 구성 요소를 실행하는 하나의 완전한 머신이다.
  • 그 해결책으로 가상화가 도입되었다. 이는 단일 물리 서버의 CPU에서 여러 가상 시스템 (VM)을 실행할 수 있게 한다. 가상화를 사용하면 VM간에 애플리케이션을 격리하고 애플리케이션의 정보를 다른 애플리케이션에서 자유롭게 액세스 할 수 없으므로, 일정 수준의 보안성을 제공할 수 있다.
  • Container Deployment
  • 컨테이너는 VM과 유사하지만 격리 속성을 완화하여 애플리케이션 간에 운영체제(OS)를 공유한다. 그러므로 컨테이너는 가볍다고 여겨진다. VM과 마찬가지로 컨테이너에는 자체 파일 시스템, CPU 점유율, 메모리, 프로세스 공간 등이 있다. 기본 인프라와의 종속성을 끊었기 때문에, 클라우드나 OS 배포본에 모두 이식할 수 있다.

 

 

 

 

 

 

 

가상화


  • 가상화 기술
  • 종속 된 컴퓨터 리소스를 추상화하여 서버, 스토리지, 네트워크 등의 소프트웨어 IT 서비스를 생성하는 솔루션
  • 하이퍼바이저 가상화
  • 하드웨어 위에 가상화 전문 소프트웨어인 하이퍼바이저를 설치하고 가상 환경을 제어하는 것
  • 호스트 가상화호스트 OS 상의 오버헤드가 크기 때문에 낮은 사양의 PC에서는 선호되지 않음
오버헤드: 가상화를 위해 필요한 추가 CPU 리소스, 디스크 용량, 메모리 사용량

 

  • 가상 환경을 만들기 위해 운영 중인 하드웨어(호스트)에 가상화 소프트웨어를 설치해 게스트 OS를 운영하는 것
  • 컨테이너 가상화호스트 OS의 자원을 컨테이너들끼리 공유하며 각각 필요한 자원을 할당 받아 실행 되기 때문에 오버헤드가 적음
  • 하이퍼 바이저와 게스트 OS가 필요하지 않아 용량이 작고, 운영체제 부팅이 필요하지 않아 서비스 시작 시간도 짧음
  • 호스트 OS 상에서 논리적으로 구역을 나눠 애플리케이션 동작을 위한 라이브러리와 애플리케이션 등을 그 안에 넣고 사용하는 것

 

 

 

 

 

Docker란?


  • 애플리케이션을 개발, 배포, 실행하기 위한 플랫폼
  • 컨테이너를 사용하여 애플리케이션 및 지원 구성 요소를 개발
  • 리눅스 자체 기능을 사용하여 프로세스 단위의 격리 환경을 제공
  • 배포 용량과 시간을 단축하고, 성능 손실을 최소화 시킴

 

 

 

 

 

Docker의 장점


  • 도커 엔진 아래에는 물리적인 컴퓨터 호스트가 있으며 도커 엔진 위에 각각의 컨테이너가 개별적인 리소스를 할당 받아서 마치 하나의 단독 컴퓨터처럼 동작함
  • 전통적인 배포 방식은 개발 후 컴퓨터에 OS를 설치하고 런타임 환경을 구성 한 뒤 배포 파일을 넣고 실행하는 것인데 이 과정을 한번에 처리할 수 있는 스크립트(이미지라고 부름)를 도커를 통해 손쉽게 만들 수 있음
  • 이미지는 원격 저장소에서 도커 엔진을 사용해 내려 받을 수 있고 내려 받은 이미지로 어떤 호스트 PC건 동일하게 컨테이너 생성이 가능함
  • 즉, 컴퓨터 초기 세팅이 없는 상태에서 물리적인 처리 없이 논리적으로 run 만 하면 순식간에 환경을 설정할 수 있음
  • 확장 편리
→ 서버의 부하로 인해 분산이 필요하여 서버의 수를 늘려야 할 경우 컴퓨터를 더 사서 런타임 환경을 구축하고 배포 파일을 실행하는 처리 또는 해당 서버가 불필요해졌을 때 낭비되는 상황 없이 유연하게 컨테이너를 올렸다 내렸다 하면서 리소스를 조절하며 확장 할 수 있음

 

 

 

 

 

 

Docker Swarm, Kubernetes


  • 오케스트레이션 툴
  • 컨테이너화된 애플리케이션의 자동 디플로이, 스케일링 등을 제공하는 관리 시스템
→ 오토스케일링 : 리소스의 임계치를 설정하여 컨테이너 상태 및 리소스 메트릭 정보를 모니터링 해서 특정 이벤트에 대해 컨테이너를 확장 및 축소하는 기능
→ 리소스 : CPU, 메모리, WAS의 Thread 등등

 

 

 

 

 

 

 

 

 

 

'Programming > DOCKER' 카테고리의 다른 글

도커컨테이너관리하기  (0) 2022.05.03
도커 이미지 관리하기  (0) 2022.05.03
도커의 구조와 특징  (0) 2022.05.02
도커 (docker) 설치하기  (0) 2022.05.02
STS에서 Maven build하기  (0) 2022.05.02

 

 

 

deploy

 

 

 

 

 

 

배포(Deploy)


  • 개발자가 로컬 PC에서 개발하고 테스트 진행 후 문제가 없으면 실서버에 반영하는 것

 

 

 

 

빌드(Build)


  • 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 그 결과
  • 컴파일 된 코드를 실제 실행할 수 있는 상태로 만드는 일
  • 개발한 어플리케이션을 실행 가능한 배포 파일 형태(jar,war)로 변환하는 것

 

 

 

 

빌드 도구(Build Tool)


  • 소스 코드에서 실행 가능한 애플리케이션 생성을 자동화하는 프로그램
  • Ex. Maven, Gradle

 

 

 

 

 

 

 

 

 

STS에서 Maven build 하는 방법 


빌드에 앞서 해당프로젝트에 오류가 없는지 확인 한다. 문제가 없다면

 

프로젝트 우클릭 > Run As 클릭 > 5. Maven build 클릭

 

 

 

 

 

 

 

 

Gols(목표) 입력 >  Run 클릭 

 

 

 

 

 

이 과정을 통해 콘솔창에서 확인 해야하는 것 : Build Success

 

 

 

 

 

Build Success를 확인 > 프로젝트 내 target 폴더 우클릭 > Refresh

 

 

 

 

새로고침하면 다음과 같은 SNAPSHOT.jar 파일을 확인할 수 있다. 

단독으로 배포, 단독 실행이 가능한 .jar 파일이 생성된다. 

 

 

 

 

 

 

 

 

 

 

 

 

deploy 테스트 


 

 

  1. 위의 과정을 통해 생성된 SNAPSHOT.jar 파일을 실행을 원하는 폴더로 따로 옮겨준다. 
  2. 테스트를 위해 C: 내에 deploytest 폴더를 따로 만들어 옮겨 주었다. 
  3. 폴더 내에서 cmd를 검색한다. 

 

 

 

 

 

 

  • cmd 내 하얗게 드래그 쳐져있는 부분과같이 입력한다. 
java -jar crud-0.0.1-SNAPSHOT.jar

 

 

 

 

 

 

동작에 문제가 없다면 다음과같은 화면이 뜨면서 나의 포트번호 (8001)도 함께 확인할 수 있다. 

 

 

 

 

 

배포한 프로그램을 실행 후 종료하는 법
  • ctrl + c 누름
  • 종료가 되었다면 다음과같은 화면이 뜬다. 

 

 

 

 

 

 

백그라운드에서 역시 잘 동작됨을 확인한다. 

동작중인 포트를 종료하는 방법으로는 포트를 킬해주는 방법이 있다. 

cmd 창에 jsp를 입력해주면 스냅샷 파일앞에 다섯자리 번호가 뜬다.

포트번호는 저마다 다르다.

 

cmd > jsp 입력 

 

 

 

 

 

 

차례로 cmd 창에 [taskkill -f /PID 검색해서 나온 포트번호]를 입력해 종료가 된 모습을 확인할 수 있다.  

taskkill -f /PID 번호다섯자리

 

 

 

 

 

 

 

 

 

 

build한 .jar 파일 바로가기 만들기 


매번 위와같은 과정을 거치는게 번거롭다면 바로가기를 만들어서 쉽게 실행할 수 있다. 

 

 

 

 

바탕화면에 바로가기를 만든다. 

새로만들기 > 바로가기 

 

 

 

 

 

  • 바로가기의 항목 위치를 입력해야하는데 위에서 옮겨둔 SNAPSHOT.jar 파일의 폴더명과 파일명을 정확히 입력해준다.
  • 나의 디바이스 내 폴더명에 맞게 작성했으니 작성자마자 아래 빨간줄(폴더경로)을 제외한 입력란은 상이할 것이다. 
  • 오타에 유의하면서 항목위치 입력란에 다음과같이 작성해준다. 

 

C:\Windows\System32\cmd.exe /k "javaw -jar C:\dev\deploytest\crud-0.0.1-SNAPSHOT.jar"

 

 

 

 

 

바로가기명은 임의로 작성해준다. 

 

 

 

바로가기 생성 시 바탕화면에서 다음과같은 아이콘을 확인할 수 있다. 

 

 

 

 

이때 주소창에 다음 포트번호를 치고 들어가면 브라우저에서 아래와 같은 화면을 통해 잘 구동하고있음을 확인할 수 있다. 

 

 

 

 

 

 

 

 

 

 

 

 

윈도우 시작과 동시에 동작하게 하기


 

 

  • 윈도우 + r 을 눌러 실행창을 실행한다. 
윈도우키 + R

 

 

 

 

 

  • 엔터를 치면 뜨는 시작프로그램 파일에 앞서 만든 바로가기 파일을 담아둔다.
  • pc가 켜지면 항상 이 프로세스가 동작하게 된다. 
  • 그러나 이 방법은 이미 프로그램이 동작중이라는 이유로 테스트중에 오류를 야기시킬 가능성이 많으므로 꼭 필요한 경우가 아니라면 지양하려 한다. 

 

 

 

 

 

 

 

(+) 

 

만약 앞서 설정한 포트 번호 8001을 바꾸고 싶다면

 

프로젝트 우클릭 > Run As를 통해 들어간 경로에서 chap01을 삭제하면 된다. 

 

 

 

 

 

 

지금까지의 테스트는 Windows OS에서의 테스트로 GUI 환경이었지만 일반적인 배포 운영 환경은 Linux로 CLI 환경이다.

 

앞서 배포한 파일은 기본적으로는 외부에서 접근이 불가능하다. 

공유가 할당해주는 내부 아이피를 사용하고있기 때문인데 외부에서 내부아이피로 접속요청을 하고자 한다면 누구에게 할당할 것인지를 설정 해주어야 외부 접속이 가능하다. 

 

 

 

 

 

 

 

 

 

 

 

 

포트 포워딩


포트 포워딩을 해주면 실행시킨 jar 파일을 외부에서도 접속하도록 할 수 있다. 

 

 

 

 

 

 

 

  • 아이피를 기억해서 요청하기 힘들다면 도메인을 사용할 수 있다.
  • iptime에서 제공하는 DDNS 설정으로 도메인을 만들거나 무료 도메인을 발급 받을 수도 있으나 매번 쳐야하는 주소가 아이피 만큼이나 복잡하다는 단점이 있다.
  • 단순명료한 도메인이 필요하다면 유료로 도메인 등록 대행 기관을 통해 도메인을 발급 받아 관리할 수 있다.

 

https://domain.gabia.com/

 

가비아: 대한민국 도메인 점유율 1위

대한민국 100만 도메인 등록 업체

domain.gabia.com

 

 

 

 

예시로 아무 주소나 쳐 보았다. 주소에 따라 가격대별로 상이한 모습니다. 

 

 

 

 

 

 

 

 

 

AWS(Amarzon Web Service)


개개인의 pc를 서버로서 물리적으로 사용할 수는 있으나 이 방법은 해당 pc가 꺼지는 순간 서비스가 종료된다.

때문에 하드웨어의 제약 없이 애플리케이션을 배포하기 위해 클라우드 환경을 활용하는 경우가 많다.

 

 

클라우드 환경의 종류는 다음과 같은 것들이 있다. 

  • EC2 : 서버용 컴퓨터 제공
  • RDS : 데이터베이스 서버 제공
  • Route53 : 도메인 주소 제공

 

다만 이 방법은 만드는 것은 무료이지만 접속량에 대해 과금이 발생할 수 있다는 점에 유의한다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Programming > DOCKER' 카테고리의 다른 글

도커컨테이너관리하기  (0) 2022.05.03
도커 이미지 관리하기  (0) 2022.05.03
도커의 구조와 특징  (0) 2022.05.02
도커 (docker) 설치하기  (0) 2022.05.02
docker를 사용하는 이유  (0) 2022.05.02

+ Recent posts