study

AWS & Docker - container 편집, glances

hjkeeeem 2024. 7. 25. 20:34

AWS, Docker 

참고 - 2023.05.15 - [분류 전체보기] - (230515) 알고리즘-버블정렬 / AWS- EC2 인스턴스 생성, ssh 접속

 

2-1. 컨테이너 편집

2-1-1. docker stop

docker ps 입력 후 컨테이너 확인 후 docker stop <컨테이너 이름> 입력 시 

다시 docker ps 했을 때 nginx는 종료되고 mysql만 남은 것을 볼 수 있다.

+ stop 을 하는 것은 메모리에서만 내리는 거지 언제든 다시 띄울 수 있다.

 

 

2-1-2. docker rmi nginx (= nginx images 지워보기 )

- docker images : 존재하는 이미지 확인

- docker rmi nginx : 더이상 해당 이미지로 실행되는 컨테이너가 없으면 지워짐

- docker container ls -a : 존재하는 images 확인

- docker container rm <컨테이너ID> : 존재하는 images 중 해당 컨테이너 id 삭제

위 명령어를 이용해 nginx의 images를 삭제한다.

다시 docker images 를 확인하여 rmi (remove images 라는 의미) 입력 시 위 사진과 같이 뜨면 삭제가 완료된 것이다.

 

 

2-1-3. 위 과정을 한번에 하기

docker container prune : 한번에 지우기

 

2-1-4. 다시 설치한 NAME으로 지우기( 순차적으로 진행 )

- docker run -d nginx : nginx 다시 띄우기

- docker run -d redis : redis 다시 띄우기

- docker stop names <NAME> : 중지 시키기

- docker container prune : 사용하지 않는 컨테이너 제거

- docker container ls -a : 컨테이너가 지워졌는지 확인

- docker image prune : 사용하지 않는 이미지 제거

- docker images : 제거한 이미지가 지워졌는지 확인

 

 

다시 새로 띄워서 중지 후 docker system prune -a 할 시 모두 제거 

확인해보면 docker images, docker container ls -a 입력 시 모두 제거 되고 mysql 만 남아있는 것을 볼 수 있음

 

2-1-4. glances 

 

glances란?

: 리소스 모니터링 툴로 aws사용 시 서버 비용을 절양하기 위해 서버를 효율적으로 사용해야 함.

  때문에 모니터링을 통해 서버의 상태를 확인하면서 서버의 부하를 고려해 저렴한 서버를 운영하는데 도움을 줌.

 

glances 실행해보기

apt install glances : glances 설치하기

glances :  시스템 모니터링으로 용량확인 가능 (CPU, 메모리 사용률, SDD 용량 )

단축키

h : 도움말 호출 ( 도움말에서 나올 땐 ESC )

ctrl+C : 종료 

5 : 요약본 노출 

 


2-2. Linux 커맨드에서 용량 확인 

 

2-2-1. df와 du사용법

df : disk filesystem를 뜻하며 파일 시스템 별로 사용중인 디스크 공간을 보여준다.

$ df - h

 

 

du : disk usage를 뜻하며 특정 디렉토리나 파일이 사용중인 디스크 공간을 보여준다.

du -sh * : 현재 디렉토리에 있는 각 파일과 디렉토리의 디스크 사용량을 보여준다.

$ du -sh *

du . : 현재 디렉토리의 서브 디렉토리 용량

du -sh ./* : 하위 디렉토리의 용량 확인

du -sh ./* | sort -nr : 하위 디렉토리 용량 확인하고 소트하기

 


3. Springboot 서버 띄우기

메소드와 멤버변수를 재사용하기 위해 추상화 사용 ㅅ

제네릭, 컬렉션, 타입참조 이해하기, 추상화 

 

SpringBoot 빌드

Intellij - 커뮤니티 버전은 Springboot 프로젝트 생성이 불가하기 때문에 아래 spring.io에서 파일을 생성합니다.

https://start.spring.io/

아래와 같이 설정한 다음. 

GENERATE 클릭하여 zip 파일을 다운로드 받고 압축파일을 풀어준다.

다운로드 받은 파일을 intellij 에서 open으로 열어준 뒤

 

[github] Repository 생성

[Intellij] VCS > Create Git Repository > Repo 생성 > Push까지 

 

Dockerfile 추가

FROM openjdk:17-jdk-slim
ADD /build/libs/*.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

내용 입력 후 Dockerfile도 같이 push 해준다.

github 웹에서도 Dockerfile이 존재해야 한다.

 

 

서버에서 프로젝트 받기 (ec2 ( 인스턴스 )가 연결된 상태에서 실행해야 함.)

git clone <git repo경로>

 

JDK 설치

sudo apt update
sudo apt install openjdk-17-jdk
java -version

 

Gradle 빌드

sh gradlew build

git pull을 받아 최신 상태에서 실행해야 한다.

 

 

Java app 실행

java -jar <.파일>

jar 파일을 찾을 땐 cd를 이용해 차례대로 cd build , cd libs , ll 입력 시 

빨간 글씨로 demo-어쩌구 .jar 파일입니다. 

위에서 찾은 jar파일을 입력해 app 실행

 

 

Docker 빌드 (++점 추가 잊지말기)

docker build -t <이미지 이름> .

 

 

 

Container 실행

 

docker run <이미지 이름>