Docker image 생성 Dockerfile 명령 MAINTAINER - Docker image 빌드 작성자 이름과 이메일 LABEL - Docker image 작성 목적으로 버전, 타이틀, 설명, 라이센스 정보 기술 - 1개 이상 작성 가능 Docker Volume Union File System 사용 하나의 이미지로부터 여러 container를 만들 수 있는 방법 제공 image에 변경된 내용을 저장할 수 있도록 해줌 Docker volume db, 웹 프로그래밍등 업무에 사용하는 application 에서 발생하는 데이터에 접근하고, 이것을 공유하기 위해 사용 제공하는 서비스의 로직과 데이터는 반드시 분리됨 application에서 발생한 여러가지 데이터에 영향을 주지 않고 언제든 다른 cont..
Docker Container 명령어 리소스 사용량 제한 docker run -dit -m 1g --rm --name linuxserver3 ubuntu:18.04 -m [메모리 양] - 메모리 사용량을 제한하여 container 생성, 단위:b, k, m, g 중 선택 docker run -dit --cpu-share 512 --rm linuxserver4 ubuntu:18.04 - --cpu-share [cpu 사용량] - cpu 사용 비율 파이썬 app을 container로 실행 파이썬 인터프리터 환경의 container 실행 docker cp lotto.py python-run:/ - host에 있는 lotto.py 파일을 python-run container의 / 디렉토리에 복사 docker e..
Docker Container 명령어 container는 격리된 환경에서 동작하는 Linux 프로세스 container 프로세스는 Linux 프로세스로서 관리되지만, container 프로세스는 완전 격리된 프로세스로 동작하며 현재 시스템의 kernel 기능을 공유함 container는 격리된 프로세스이므로 PID 는 1번을 가짐 - Container 생성 과정 (생명주기) docker image pull( 다운로드 ) / docker image 생성( build ) -> docker container 생성( create ) => 격리된 프로세스 생성 -> docker container 실행( start ) => application 실행 -> docker container 중지( stop ) -> 재시..
Docker Image 와 Container docker 는 client / server 구조 참고 - docker home : https://docs.docker.com/ docker image는 read only 형식, docker container를 생성하기 위한 template - 애플리케이션을 위한 라이브러리와 package 그리고 실행환경 template - 애플리케이션이 실행하는데 필요한 모든 내용이 포함되어 있다. - docker image 는 layer 구조로 구성되어 있다. - docker image 는 read only docker container 는 docker image 가 메모리에 로딩된 instance - docker image 로 부터 생성된 instance - docker..
docker 시스템의 기반인 리눅스 기술들을 실습 chroot chroot /tomato /binbash - chroot 명령으로 현재 디렉토리를 루트 디렉토리로 변경 특정 디렉토리를 루트 디렉토리로 변경하려면 shell 바이너리와 공유 라이브러리를 복사해야함 ldd /bin/bash - /bin/bash 의 공유 라이브러리 확인 linux-vdso.so.1 (0x00007ffd953b5000) -> 가상 라이브러리로 복사할 필요 없는 파일 libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f1ae91fe000) -> bash가 동작할 때 필요한 라이브러 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000..
Application 배포 방식 Tranditional Deployment ( 전통적인 app 배포 방식 ) - 물리적인 서버에 application 이 동작할 수 있는 환경 구축 - infrastructure 영역 - 물리적인 서버에 app 설치를 통한 서비스 제공 장점 - app이 물리적인 서버의 자원을 직접적으로 활용 가능 - 리소스 사용에 제약이 없음 단점 - app 설치 시 필요한 공유 라이브러리가 없으면 설치에 어려움이 있음 - 개발 환경과 운영 환경의 차이 - 특정 app이 물리적인 서버의 리소스를 과다사용하는 것의 통제가 어려움 Virtualized Deployment ( 가상 머신을 통한 배포 방식 ) - 가상 머신을 구성하여 application 배포 가상 머신은 hypervisor 기..