Docker DNS Docker 컨테이너는 IP를 사용자 정의 네트워크의 컨테이너 이름으로 자동 확인하는 DNS 서버가 Docker 호스트에 생성된다. 동일 네트워크 alias 할당을 통해 하나의 타겟 그룹을 만들어 요청을 Round Robin 방식으로 응답한다. 예제로 만나보자 사용자 정의 네트워크 생성 docker network create fc-net 하나의 fc-net 네트워크에 포함된 컨테이너 2개 생성, 논리적인 타겟 그룹 생성 docker run -d --name=es1 --net=fc-net --net-alias=esnet-tg -p 9201:9200 -p 9301:9300 -e "discovery.type=single-node" elasticsearch:7.17.10 docker run ..
Docker image는 Container runtime에 필요한 바이너리, 라이브러리 및 설정 값 등을 포함하고 변경되는 상태 값을 보유하지 않고(stateless) 변하지 않는다.(Immutable, Read Only) Docker image 관련 명령어 workflow 이미지 내려받기 docker pull [options] name:[tag] 만약 docker pull busybox 라는 명령어를 친다면 tag는 기본적으로 latest, 경로는 docker.io/library 로 설정된다. 즉 기본적으로 docker.io가 default registry로 등록되어 있다. 이미지의 구조 확인 이미지는 layer 구조이다. 맨 위에서 말했드시 이미지는 불변 즉, read only 형태로 만들어진다 그렇..
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던 도커 플랫..