도커 명령어 모음
·
Docker
일반 명령어 docker ==> 도커 관련 설명 docker -v ==> 도커 버전 확인 rm docker rm ==> 도커 삭제(보통 docker stop을 했을 때 docker ps -a와 함께 사용) docker rm -f ==> 실행중인 컨테이너 삭제 stop docker stop ==> 도커 중단 ps docker ps ==> 도커 프로세스 리스트 확인 docker ps -a ==> 도커 확인 docker container ls -a ==> 전체 컨테이너 목록 확인 도커 실행과 생성 docker run ==> 도커 실행 docker run -i -t ==> 도커를 입출력 모드와 tty 서버로 실행 tty는 물리적인 콘솔에서 사람이 직접 조작하는 개념. pty는 telnet처럼 원격에서 접속하거나..
도커 엔진을 구성하는 도커 이미지와 도커 컨테이너
·
Docker
도커는 종합적으로 보면 하나의 큰 리눅스 컨테이너이다.  우리가 도커를 바이너리 파일로 설치하거나 다운로드를 받게 된다면 실제로는 도커 엔진을 다운받는 것과 똑같다. 또한, 도커를 이용해서 인프라를 구축하거나 개발을 한다는 말은 도커 엔진을 이용해서 인프라를 구축 및 개발한다는 말이다. (자세한 설명)컨테이너 기반 가상화는 도커 엔진 위에 애플리케이션 실행에 필요한 바이너리만 올라간다. OS 가상화(HyperVisor)를 보면 Host OS와 완전히 분리되는 장점은 있지만 OS위에 OS를 올리기 때문에 무겁고 느리다. 하지만, 컨테이너 기반 가상화는 Host OS 그리고 도커 엔진위에서 바로 동작하며 Host의 커널을 공유한다. (커널을 공유하게 되면 I/O처리가 쉽게 되어 성능의 효율을 높일 수 있음)..
도커가 배포할 때 필요한 이유
·
Docker
도커는 이미 없어선 안되며 큰 인기를 끌고있다. 특히, 도커를 사용하면 아주 쉬운 배포가 가능해진다. 그렇다면 도커는 어떻게 배포를 구현할까? 3가지 시대로 나눠서 도커의 배포에 대해 설명한다. 전통적인 배포의 시대 애플리케이션을 하나의 물리 서버에서 실행 단점 하나의 물리 서버에서 여러 애플리케이션을 실행(Spring, Jenkins, Nginx 등)한다면 각각의 애플리케이션이 잡는 리소스들이 너무 크다. 또한, 조율하기 어렵다. 어떤 애플리케이션은 서버의 리소스를 많이 잡을 수 있고 다른 애플리케이션은 적을 수도 있고 이런 것들이 여러 개가 있을 수 있다. 해결책 위의 단점을 해결할 수 있는 간단한 해결 방법은 당연하게 새로운 물리 서버 증설이다. 그러나 하지만, 물리 서버를 많이 유지하고 관리하는 ..
Spring + Redis + S3 + 이메일 인증 + Docker + CI/CD - 완
·
프로젝트/토이 프로젝트
나만의 작은 토이 프로젝트를 끝마쳤다. 중간에 정보처리기사 필기도 봐서 너무 늦어졌지만, 토이 프로젝트를 결국 마쳤다. 회고를 해보자면.. 아직 많이 부족한 것 같다. 클린 코드나 객체지향적 설계 그리고 테스트 코드까지 숙달이 필요하다. 그래도, 덕분에 최소한 이제는 코드와 관련하여 고민해볼 수 있는 사람이 된 것 같다. 학교에서 배운 것들이 조금씩 생각나며 이제는 올바른 코드를 작성할 수 있는 사람이 되어야겠다는 생각이 들은 것은 아주 좋은 현상이라고 생각한다. 가상머신으로 진행하여 애를 많이 먹었지만, 그래도 재미있었다. 잘 안풀릴 땐 솔직히 재밌진 않지만, 오기가 생겨 계속 하다가 성공할 때 참 재밌음을 느낀다. 나름 많은 것을 얻었다. AWS S3나 이메일 인증, CI/CD까지 새로운 것들을 해봐..
Spring + Redis + S3 + 이메일 인증 + Docker + CI/CD - 8
·
프로젝트/토이 프로젝트
이번 포스팅에서는 AWS S3 테스트와 API 명세서를 작성한 과정을 담는다. 우선, AWS S3를 사용하기 위해 MockS3를 사용한다. 그 이유는 S3에 테스트를 위해 생성한 파일들이 계속 저장되기도 하고 프리티어 계정에는 GET/POST 요청이 횟수 제한이 있기 때문이다. 따라서, 관련된 설정을 해줘야 한다. MockAwsS3Config 기존 AmazonS3 대신 MockAwsS3Config를 사용한다. 이때 사용되는 @Primary는 동일한 빈이 있을 때 우선순위를 설정해준다. @Configuration public class MockAwsS3Config extends AwsS3Config { @Bean @Primary @Override public AmazonS3 amazonS3Client() ..
Spring + Redis + S3 + 이메일 인증 + Docker + CI/CD - 7
·
프로젝트/토이 프로젝트
이번 포스팅에서는 AWS S3에 사용자의 프로필 이미지를 CRUD(?)한 과정을 담는다. AWS S3가 뭘까? AWS Simple Storage Service의 줄임말로 Object Storage 개념이 적용되었다고 생각하면 된다. 파일을 저장하고 불러오는 작업이 RESTful API를 통해 간단하고 뛰어난 보안성을 자랑한다. 장점 거의 무제한에 가까운 용량이다.(물론 용량 제한도 설정할 수 있다.) 보안성이 아주 좋다. 저렴한 비용 플랫 구조를 사용한 빠른 탐색 높은 객체 가용성 개인적으로 AWS S3는 학부연구생을 하며 Object Storage 개념의 Ceph에 관한 논문을 작성했기에 친숙했다. Object Storage 관련해서는 아래 포스팅을 참고 바란다. https://hdbstn3055.ti..