CS/서버

    도커 컴포즈(Docker Compose)

    Docker Compose 여러 컨테이너를 일괄적으로 정의하고 실행할 수 있는 툴을 말한다. 즉 하나의 서비스를 운영하기 위해서는 컨테이너화된 여러 개의 애플리케이션이 동작되어야하는데 이를 통합 관리할 수 있게 해준다. yaml 형태 파일을 이용해 도커 컴포즈에게 요청을 하면, 도커 컴포즈가 이 파일을 읽어서 실행한다. 문법 만약 word press의 docker-compose 파일을 해석해보자면 , version: '3.1' #컴포즈를 이용해서 실행할 컨테이너의 옵션을 정의 #이 services안에는 db와 wordpress가 존재 services: wordpress: image: wordpress restart: always ports: - 8080:80 environment: WORDPRESS_DB..

    도커 데이터 보존하기 - Bind Mount/Volume

    먼저 도커 이미지는 read only로 수정이 불가능한 상태이다. 이미지를 docker run으로 실행을 시켜도 여전히 read only 상태의 프로세스이다. 따라서 컨테이너에 추가되는 데이터들은 별도의 read write 레이어에 저장된다. Union FIle System (= Overlay) 여러 개의 파일 시스템을 하나의 파일 시스템에 마운트하는 기능을 말한다. 여러 파일을을 하나의 파일 시스템으로 합칠때, 중복되는 파일이 존재한다면 UFS에서는 나중에 마운트된 파일로 덮어쓴다. Docker의 Union FIle System 도커의 컨테이너는 UFS 를 기반으로 동작한다. 컨테이너의 read only layer와 read write layer가 하나인것처럼 보이게 만드는 것을 말한다. 기존 레이어 ..

    도커 컨테이너 하드웨어 리소스 제한 관리 - Memory, CPU

    컨테이너 하드웨어 리소스 제한 관리하기 기본으로 컨테이너는 호스트 하드웨어 리소스의 사용 제한을 받지 않는다. 하지만 컨테이너가 필요로하는 만큼의 리소스만 할당해야한다. Docker Command 를 통해 제한할수 있는 리소스 : CPU, Memory, DISK IO docker run —help 를 통해 확인 가능하다. Memory 리소스 제한 제한 단위는 b,k, m,g로 할당 #nginx를 실행할때 최대로 사용할 수있는 메모리 양을 512m로 지정 docker run -d -m 512m nginx:1.14 #nginx는 항상 500m사용을 보장받고, 최대 1g 까지 쓸 수있다. docker run -d -m 1g --memory-reservation 500m nginx:1.14 #메모리 스왑 : 실..

    Docker로 mysql 설치 및 접속하기

    #도커 이미지 pull docker pull mysql #도커 컨테이너 생성 및 실행 docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=0000 -d -p 3307:3306 mysql:latest #도커 컨테이너 리스트 확인 docker ps #mysql 도커 컨테이너 접속 docker exec -it mysql-container bash - p : 도커 설치한 호스트의 3307 포트를 컨테이너의 3306 포트에 연결한다는 의미 이후에 접속을 하면 되는데 , 기본적으로 host 종류는 ‘localhost’ 와 ‘%’ 가 있다. 기본적으로 mysql 을 설치하면 로컬에서만 접속이 가능하고 외부에서는 접속이 불가능한데 이때 데이터 그립에 등록하고 싶으면 r..

    Dockerfile 이용해서 이미지 만들고, 도커 허브에 배포하기

    도커 파일 (Dockerfile)을 통해 이미지를 만들고, 이를 실행시켜 컨테이너를 만들 수 있다. Dockerfile Dockerfile은 컨테이너를 만들 수 있도록 도와주는 명령어의 집합이다. 즉, 이미지를 생성하기 위한 용도로 작성하는 파일을 말한다. 쉽고 간단 명확한 구문을 가진 text file 로 top-down 해석 컨테이너 이미지를 생성할 수있는 고유의 지시어를 가진다. 대소문자를 구분하지 않으나 가독성을 위해 사용한다. 문법 FROM : 컨테이너의 Base Image MAINTAINER : 이미지를 생성한 사람의 이름 및 정보 LABEL : 컨테이너 이미지에 컨테이너의 정보를 저장 RUN : 컨테이너 빌드를 위해 base image에서 실행할 commands COPY : 컨테이너 빌드시 ..

    AWS - EC2, Elastic Beanstalk, Fargate, ECR, Lambda, ECS

    AWS EC2 (Cloud Compute Cloud) AWS 에서 제공하는 가장 기본적인 형태의 클라우드 컴퓨팅 서비스 (= 클라우드 컴퓨터 한 대) AWS EC2 인스턴스를 생성한다는 것은 AMI(이미지 )를 토대로 운영체제 , CPU, RAM 으로 구성된 컴퓨터를 빌리는 것이다. 인스턴스 유형 : 인스턴스를 위한 CPU, 메모리, 스토리지 , 네트워킹 용량의 여러가지 구성 제공 auto scaling 지원 : 오토스케일링이란 CPU, 메모리, 네트워크 트래픽과 같은 시스템 자원들의 메트릭 값을 모니터링해 서버 사이즈를 자동으로 조절하는 서비스를 말한다. ec2는 갑자기 트래픽이 몰리면 자동으로 인스턴스를 자동으로 스케일링 기능을 제공한다. 탄력적 IP 주소 (Elastice Ip address) : ..

    AWS - VPC, NAT,ELB, S3, CloudFront

    AWS (Amazon Web Services) 아마존에서 개발한 클라우트 컴퓨팅 시스템 on - premise : 기업 자체적으로 버유한 전산실 서버에 직접 설치해 운영하는 방식 cloud computing : 인터넷을 통해 데이터를 저장하거나 , 데이터베이스, 서버 , 네트워킹, 소프트웨어 같은 도구 , 어플리케이션 등 다양한 서비스를 제공하는 방식. 이 방식을 사용함으로써 관리 비용을 줄일 수있다. AWS VPC (Virtual Private Cloud) 가상 네트워크 서비스와 퍼블릭 네트워크와 프라이빗 네트워크를 분리하고 모니터링을 할 수 있도록 해주는 서비스 즉, 독립된 가상의 네트워크 서비스 이다. 네트워크 구성과 관련된 사실상 모든 기능을 담당한다. 그림을 보면 ,인터넷 게이트웨이(입구)를 통..

    도커(docker) - 가상화(VM)과 컨테이너(Container)

    도커 컨테이너 기반 가상화 도구 어플리케이션을 컨테이너 단위로 격리하려 실행하고 배포하는 기술 가상화 기술 (Virtual Macine) 하나의 물리적인 컴퓨터 자원 (하드웨어)을 가상적으로 분할해 여러 개의 가상 컴퓨터 환경을 만들어 내는 기술을 말한다. 고성능 서버를 더 안정적으로 효율적으로 사용하기 위해 등장했다. 하이퍼바이저(Hypervisor) 가상 머신을 생성하고 구동하는 소프트웨어이며 OS에 자원을 할당 및 조율한다. 호스트 OS 위에서 VM을 가상화 시켜주는 하이퍼바이저가 존재하며, 이 하이퍼바이저를 사용해 원하는 운영체제로 게스트 OS를 올려 여러가지 VM을 만들 수 있다. 하지만 이렇게 게스트 OS를 가상화하여 사용하는 방식은 각각의 독립적인 OS를 실행시켜야 하기 때문에 부팅 시간이 ..