AWS & Docker - container 편집, glances
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에서 파일을 생성합니다.
아래와 같이 설정한 다음.
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 <이미지 이름>