본문 바로가기

프로그래밍 놀이터1998

[Docker] 멀티호스트 환경에서 Docker 실행 환경 구축 [Docker] 멀티호스트 환경에서 Docker 실행 환경 구축 -Docker 에서 작동하는 웹 앱을 제품 환경에서 운용할 때는 앱이 사양대로 올바르게 작동할 뿐만 아니라 서비스 이용자가 항상 이용할 수 있도록 운용 관리를 해야 한다.이러한 컨테이너 기반은 보통 멀티호스트 환경으로 구축한다. 8.1. 멀티호스트 환경에서 컨테이너 관리의 개요 -웹 시스템의 실행 환경은 웹 서버, 프록시 서버, 데이터 스토어 등 역할이 다른 여러 개의 서버 기능이 연계되어 작동한다. * 멀티호스트 환경과 클러스터링 -시스템의 일부에서 장애가 발생해도 서비스가 정지되지 않도록 만드는 장치가 필요하다.이를 구현하는 기술 중 하나로 클러스터링이 있다.클러스터링은 여러 대의 서버나 하드웨어를 모아서 한 대처럼 보이게 하는 기술이다.. 2020. 3. 27.
[Docker] 여러 컨테이너의 운용 관리 [Docker] 여러 컨테이너의 운용 관리 -Docker 에서 움직이는 웹 앱을 제품 환경에서 운용할 때는 앱 서버, 로그 서버, 프록시 서버 등과 같이 여러 개의 컨테이너들을 연계하여 작동시킨다. 7.1. 여러 컨테이너 관리의 개요 -앱을 가동시키려면 여러 개의 서버에 기능과 역할을 분할하여 인프라의 전체 구성을 정한다.이것을 인프라 아키텍처라고 한다.대규모 웹 시스템의 경우 몇 개의 서브 시스템/기능으로 나누어 시스템을 개발하는 경우가 많다.웹 3계층 아키텍처는 웹 앱의 대표적인 인프라 아키텍처 중 하나로 웹 시스템의 서버들을 역할별로 다음 3개로 나누는 것을 이야기한다. -프론트 서버 클라이언트의 요청을 받아 응답을 반환하는 서버이다. 웹 프론트 서버 또는 그냥 웹 서버라고 한다. 웹 서버의 기능은.. 2020. 3. 26.
[Docker] Docker 이미지 공개 [Docker] Docker 이미지 공개 -Docker 이미지를 공유하는 장치를 제공하는 것이 Docker 레지스트리이다. 6.1. Docker 이미지의 자동 생성 및 공개 -Dockerfile 을 GitHub 등에서 관리하고 Docker Hub 와 연결하면 Dockerfile 로부터 자동으로 Docker 이미지를 생성하고 공개할 수 있다. * Automated Build 의 흐름 -Docker Hub 에는 버전 관리 툴인 GitHub 및 BitBucket 과 연결하여 Dockerfile 로부터 Docker 이미지를 자동으로 생성하는 Automated Build 기능이 있다.이는 GitHub 나 BitBucket 에 있는 Dockerfile 을 바탕으로 Docker 이미지를 자동으로 빌드하는 기능이다. .. 2020. 3. 25.
[Docker] Dockerfile 을 사용한 코드에 의한 서버 구축 [Docker] Dockerfile 을 사용한 코드에 의한 서버 구축 -Docker 에서는 인프라의 구성 관리를 Dockerfile 로 기술한다.이 Dockerfile 에는 베이스가 되는 이미지에 각종 미들웨어를 설치 및 설정하고, 개발한 앱의 실행 모듈을 전개하기 위한 앱 실행 기반의 모든 구성 정보를 기술한다. 5.1. Dockerfile 을 사용한 구성 관리 * Dockerfile 이란? -Dockerfile 은 Docker 상에서 작동시킬 컨테이너의 구성 정보를 기술하기 위한 파일이다.docker build 명령은 Dockerfile 에 기술된 구성 정보를 바탕으로 Docker 이미지를 작성한다. * Dockerfile 의 기본 구문 -Dockerfile 은 텍스트 형식의 파일로 에디터 등을 사용.. 2020. 3. 24.
[Docker] Docker 명령 #2 [Docker] Docker 명령 #2 4.3. Docker 컨테이너 네트워크 -Docker 컨테이너끼리 통신을 할 때는 docker 네트워크를 통해 수행한다. * 네트워크 목록 표시 (docker network ls) -syntax)$ docker network ls [옵션] 주요 옵션-f, --filter=[] : 출력을 필터링--no-trunc : 상세 정보를 출력-q, --quiet : 네트워크 ID 만 출력 docker 기본으로 bridge, host, none 이렇게 세 개의 네트워크를 만든다. -필터링 할 때는 key=value 형으로 지정한다.주요 키는 driver, id, label, name, scope(swarm/global/local), type(custom/builtin) -네트워.. 2020. 3. 23.
[Docker] Docker 명령 #1 [Docker] Docker 명령 #1 4.1. Docker 이미지 조작 * Docker Hub -Docker Hub 는 GitHub 나 Bitbucket 같은 소스코드 관리 툴과 연계하여 코드를 빌드하는 기능이나 실행 가능한 앱의 이미지를 관리하는 기능을 갖춘 Docker 의 공식 리포지토리 서비스이다.이를 사용하여 물리 서버, 가상 머신, 클라우드 모두 이미지를 배포할 수 있다. hub.docker.com -이미지명은 아래의 format 을 갖는다.이미지명[:태그명]태그명에는 latest 를 지정할 수도 있다. latest 는 저장소에 공개되어 있는 최신판 이미지를 의미한다. -Docker Store 는 Docker 사가 제공하는 소프트웨어의 마켓 플레이스.제공되는 소프트웨어는 Docker 포맷에서 .. 2020. 3. 22.
[Docker] Docker 설치와 튜토리얼 [Docker] Docker 설치와 튜토리얼 -Docker 를 개발 머신에서 이용할 때는 Docker for Mac 또는 Docker for Windows 를 설치한다.Docker 를 Linux 환경에서 사용하는 경우는 배포판에 따라 설치 절차가 다르다. 3.1. Docker 설치와 작동 확인 * Docker 의 클라이언트 툴 -macOS 용 Docker 는 macOS 1.10 Yosemite 에서 이용 가능하게 된 Hypervisor 프레임워크인 xhyve 를 사용한다. -windows 용 Docker 는 Windows 10 이후에 이용가능하며, MS 가 제공하는 하이퍼바이저인 x64용 가상화 시스템인 Hyper-V 를 사용하고 있다.OS 설정에서 Hyper-V 를 유효화하면 VirtualBox 등과 .. 2020. 3. 21.
[Docker] 컨테이너 기술과 Docker 의 개요 [Docker] 컨테이너 기술과 Docker 의 개요 -Docker 는 컨테이너 기술을 사용하여 앱의 실행 환경을 구축 및 운용하기 위한 플랫폼이다.앱 실행에 필요한 것을 하나로 모아, docker 이미지를 관리함으로써 앱의 이식성을 높일 수 있다. 2.1. 컨테이너 기술의 개요 * 컨테이너 -컨테이너란 호스트 OS 상에 논리적인 구획(컨테이너)를 만들고, 앱을 작동시키기 위해 필요한 라이브러리나 앱 등을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있게 만든 것이다.호스트 OS 의 리소스를 논리적으로 분산시키고, 여러 개의 컨테이너가 공유하여 사용한다.컨테이너는 오버헤드가 적기 때문에 가볍고 고속으로 작동한다는 것이 특징이다. -보통 물리 서버 상에 설치한 호스트 OS 의 경우 하나의 OS 상에.. 2020. 3. 20.
[Docker] 시스템과 인프라 기초 지식 [Docker] 시스템과 인프라 기초 지식 -Docker 는 앱 실행 환경을 작성 및 관리하기 위한 플랫폼이다. 1.1. 시스템 기반의 기초 지식 -클라우드의 등장으로 시스템 개발의 흐름이 크게 바뀌었다.클라우드를 구성하는 대부분의 기술은 한 대의 물리 호스트 상에서 움직이는 시스템과는 달리 분산 환경에서 가동시키는 것이 기본이다.인프라 엔지니어에게는 인프라 기술에 더해 앱 엔지니어와 똑같이 코드를 작성하는 스킬이 요구된다.앱 엔지니어도 지금까지 인프라 엔지니어의 업무였던 제품 환경에 대한 베포나 테스트 등도 직접 할 수 있게 되었기 때문에 OS(커널)나 네트워크 등과 같은 인프라 기술의 기초 지식을 알아두어야 한다. * 시스템 기반의 구성 요소 -시스템 기반이란 앱을 가동시키기 위해 필요한 하드웨어나 .. 2020. 3. 19.