Portainer란? portainer는 Docker Web 관리 툴 이다. 간단하게 말해서 현재 실행되고있는 Docker 관련된 컨테이너, 이미지, 볼륨, 네트워크 등을 web에서 UI적으로 관리할 수 있게 해준다. portainer volume 생성 docker volume create portainer_data 컨테이너 실행 | (기본적으로 9000포트 사용) docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer portainer 동작 확인 docker ps | grep portainer 아래와 같이 회원가입을 하고 ..
Nginx는 웹 서버이다. 보통 웹 서비스는 클라이언트 -> 웹 서버 -> WAS -> DB 순으로 요청이 되고 역순으로 응답이 된다. WAS가 있는데 왜 웹 서버를 사용할까? 이유는 WAS의 부담을 줄여주기 위해서 사용된다. WAS는 로그인, 회원가입, 개인정보 수정 등 동적 작업을 처리하는 것만으로도 작업량이 많다. 이에 HTML, CSS, JS, 이미지 등 정적인 파일을 클라이언트에게 전달하는 역할을 웹 서버에 위임함으로써 WAS 작업 부담을 줄일 수 있다. Nginx를 통해 리버스 프록시 기술을 구현할 수 있다. 프록시의 사전적 정의는 "대리" 이다. 프록시는 크게 포워드 프록시, 리버스 프록시로 구분된다. 포워드 프록시는 클라이언트와 인터넷 그 사이에 있는 영역을 말한다. 클라이언트가 어떠한 정..
로그인 docker login: 도커 계정으로 로그인 docker info | grep Username: 로그인한 계정 조회 도커 이미지 docker images: 도커 이미지 전체 조회 docker pull {이미지명}:{태그}: 이미지 다운 docker build -t {이미지명}:{태그} {경로}: Dockerfile 실행 및 이미명, 태그 설정 컨테이너 docker run -it --name={이름} {이미지명} bash: 컨테이너 이름을 {이름}으로 지정하고 {이미지명}을 실행, bash를 통해 내부로 들어가겠다. docker run -d -p {외부포트}:{내부포트} --name={이름} {이미지명}: 포트 포워딩하며 백그라운드로 컨테이너 실 docker ps: 실행중인 컨테이너 조회 dock..
컨테이너 기술은 무엇일까? 컨테이너는 애플리케이션을 언제든 실행 가능하도록 필요한 모든 요소를 하나의 런타임 환경으로 패키징한 논리적 공간을 말한다. 도커에선 이런 패키징 기술을 Docker file build를 통해 구현한다. 즉, 애플리케이션과 종속 항목을 하나로 묶어, 실행하게 해주는 운영 시스템을 가상화한 경량의 격리된 프로세스 라고 볼 수 있다. 이를 통해 얻을 수 있는 가장 큰 이점은 개발 그 자체에 집중할 수 있다. 컨테이너 특징 컨테이너는 최소한의 Image를 통해 실행되므로 경량이다. 일반 서버 환경에서의 애플리케이션 실행과 달리 언제든 프로세스 수준의 속도로 빠르게 실행 가능하다. 한번에 여러개의 컨테이너를 동시에 실행 가능하다. 개인 환경이던, 클라우드 환경이던 어떤 OS던 도커 플랫..
이전에 STOMP를 사용해서 채팅 서비스를 구현해 보았다. 이번에는 비동기 서버인 Netty 서버와 MongoDB로 구현한 채팅 서비스를 구현해보았다. 그 전에 mySQL과 MongoDB의 차이점을 짚고 넘어가자 mySQL은 관계형 데이터베이스 관리 시스템(RDBMS)이다. 테이블에 데이터를 저장하고 데이터베이스 액세스를 위해 구조화된 쿼리 언어(SQL)를 사용한다. 여러 테이블의 데이터가 필요할 때 Join을 사용하여 액세스한다. MongoDB는 데이터를 JSON과 유사한 문서롤 저장하는 NoSQL 데이터베이스이다. 문서는 관련 정보를 함께 저장하고 액세스를 위해 MongoDB 쿼리 언어(MQL)을 사용 필드는 문서마다 다를 수 있음 문서 구조를 선언할 필요가 없음 SQL은 언제 사용하는게 좋을까? 관..
웹 소켓은 예전부터 사용해보고 싶었다. 직전 프로젝트에서 실시간 알람 기능을 추가했는데 그때 사용하려다 알람에는 SSE가 더 적절해 보였고 소켓은 사용하지 않았고 이번에 개인적으로 채팅 서비스를 구현하기로 했다. 웹 소켓에 대해 알아보기 전 http 통신의 특징과 한계에 대해 알아보자 http 통신의 특징과 한계 http통신은 HyperText Transfer Plotocol의 약자로서 오늘날 광범위하고 일반적으로 사용되는 통신 기법이다. http의 통신 과정은 아래와 같다. client가 server에게 자신이 받고싶은 정보를 request에 담아 전송한다. server는 client의 request에 따라서 알맞은 response로 응답한다. client는 server에게 받은 response의 데이..