Linux/Container

    [Docker] Resource Limitation (자원 제한 하기)

    [Docker] Resource Limitation (자원 제한 하기)

    컨테이너는 기본적으로 리소스 제한이 없으며 호스트의 커널 스케쥴러에 의해 허용되는 주어진 리소스를 사용할 수 있습니다. 가끔 각 컨테이너 별로 리소스(CPU, Memory 등)를 제한할 필요가 생길 수 있습니다. 이런 경우를 위해 도커에서는 컨테이너 별로 어느 정도의 CPU, Memory 자원을 사용할 지에 대해 제한할 수 있는 방법을 제공하고 있습니다. 이 기능들이 지원되기 위해서는 커널이 필요로 합니다. 커널에서 지원하는 여부는 docker run 명령어를 사용하여 확인할 수 있습니다. sudo docker info [sudo] password for linuxias: Client: Debug Mode: false Server: Containers: 1 Running: 1 Paused: 0 Stopp..

    [Docker] Container Logging 에 대해 알아보자.

    [Docker] Container Logging 에 대해 알아보자.

    docker logs 명령어는 이용하여 동작중인 컨테이너의 로그 정보를 볼 수 있습니다. docker logs 명령어는 터미널에서 대화식으로 명령을 실행했을 때와 같이 명령의 출력을 표시합니다. UNIX 및 Linux 명령은 일반적으로 STDIN, STDOUT 및 STDERR이라는 3 개의 I/O 스트림이 실행될 때 열립니다. STDIN은 명령의 입력 스트림으로 키보드 입력 또는 다른 명령 입력을 포함 할 수 있습니다. STDOUT은 일반적으로 명령의 일반 출력이며 STDERR은 일반적으로 오류 메시지를 출력하는 데 사용됩니다. 기본적으로 docker logs에는 명령의 STDOUT 및 STDERR이 표시됩니다. 하지만 특별한 경우에는 로그를 볼 수 없습니다. 그 경우는 아래와 같습니다. logging ..

    [Docker] Dockerfile 알아보기

    [Docker] Dockerfile 알아보기

    Docker는 Dockerfile에 정의된 인스트럭션을 이용하여 자동적으로 이미지를 빌드 할 수 있습니다. Dockerfile은 일반적은 텍스트 파일로서 사용자가 이미지를 생성할 때 필요로 하는 모든 명령어들을 포함시킬 수 있습니다. docker build 명령어를 이용하여 사용자는 도커 이미지를 생성할 수 있습니다. ubuntu나 centOS 이미지를 DockerHub로 부터 다운받아서 본인의 어플리케이션을 동작시키려 한다면 생각은 쉽지만 쉽게 되지 않습니다. 어플리케이션이 동작하기 위한 여러 환경이 설정되어 있지 않기 때문입니다. 동일한 어플리케이션을 여러 컨테이너에서 동작 시키고자 한다면 각 컨테이너마다 새로운 환경을 구축해 줘야 할 것입니다. 도커에서는 환경을 설정하거나 명령어를 수행하는 등 다양..

    [Docker] 게으른 개발자를 위한 Docker Compose

    [Docker] 게으른 개발자를 위한 Docker Compose

    Overview Docker Compose 는 멀티 컨테이너 도커 어플리케이션을 정의하거나 동작시키기 위한 툴이다. 이 툴로 인해 개발용이성이 매우 향상되었다. docker 명령어를 사용하나 단일 도커 이미지를 생성하거나 단일 컨테이너를 동작시켰다. 둘 이상의 상호 연관된 컨테이너가 필요한 경우 docker run 명령어를 여러번 실행하여 환경을 구성하였다. 한번 구성한 환경을 지속적으로 사용한다면 모르겠지만, 설정이 변경되거나 다른 호스트 머신에서 구축이 필요한 경우 또 다시 docker run 명령(docker network 등 포함)을 다시 실행해야 한다. 얼마나 불편한가? 개발자는 게을러야 한다. 위 글귀는 갑작스럽겠지만, 위 문구가 docker compose와 잘 어울리는 글귀라고 생각해서 뜬금..

    [Docker] 도커 저장소! Storage 알아보기

    [Docker] 도커 저장소! Storage 알아보기

    컨테이너를 사용하여 다양한 작업을 할 수 있습니다. 여러 작업 중 컨테이너 내부에서 생성한 정보, 파일들이 컨테이너가 종료되고 난 이후에 손실되어 찾을 수 없습니다. 기본적으로 컨테이너 내부에 생성되는 모든 파일들은 쓰기가능한 컨테이너 레이에어 저장되어 집니다. 이렇게 저장된다는 것은 아래와 같은 의미를 포함합니다. 컨테이너가 종료된 후에는 데이터가 지속 가능하지 않습니다. 다른 프로세스가 컨테이너 내부의 데이터를 참조하기 어렵습니다. 컨테이너의 쓰기가능한 레이어는 컨테이너가 동작 중인 상태에서 호스트와 매우 타이트하게 연결되어 있습니다. 이 말은, 여러분이 데이터를 다른 곳으로 옮기는게 쉽지 않음을 의미합니다. 컨테이너의 쓰기 가능한 레이어에 쓰기 위해서는 파일 시스템을 관리하기 위한 스토리지 드라이버..

    [Docker] Docker 기본 명령어 알아보기

    [Docker] Docker 기본 명령어 알아보기

    Docker Hub에서 Image Download Docker pull command를 사용하여 DockerHub 에 등록된 이미지 다운로드 합니다. 다운로드 할 이미지는 ubuntu 18.04 이미지입니다. 사용법은 pull 명령어 뒤에 다운로드 할 이미지의 이름과 버전을 명시해줍니다. $sudo docker pull ubuntu:18.04 18.04: Pulling from library/ubuntu 5c939e3a4d10:Pull complete c63719cdbe7a: Pull complete 19a861ea6baf: Pull complete 651c9d2d6c4f: Pull complete Digest: sha256:8d31dad0c58f552e890d68bbfb735588b6b820a46e45..