Cloud/Docker 11

Docker In Action 12. First-class configuration abstractions

도커 config와 secret에 대해 알아본다. Configuration 구성 설정 파일은 어플리케이션을 실행할 때 필요한 설정 파일을 의미하며, DB 커넥션 스트링, 각종 제약과 비즈니스 로직에 사용되는 설정값을 파일을 통해 설정하는 것을 의미. 12.1 구성 설정 배포와 관리 도커 서비스는 어플리케이션을 정의하는 이미지에 의존하는 것처럼 configuration 리소스에 의존한다. 구성 설정이나 시크릿 파일이 누락되었다면, 어플리케이션은 실행 되지 않거나 잘 못 된 행동을 유발한다. 12.2 어플리케이션과 구성 설정 분리 greetings 서비스는 "Hello World!"를 서로 다른 언어로 출력하는 서비스이다. 이 서비스의 개발자는 유저의 요청이 오면 한 인사말을 응답으로 주고 싶어한다. 번역가..

Cloud/Docker 2024.12.14

Docker In Action 11. Services with Docker and Compose

도커 서비스 구축 서비스란어떠한 프로세스 process, 기능 functionality 혹은 데이터가 네트워크를 통해 이용가능할 때 서비스라고 할 수 있다. 도커 스웜 노드를 통한 서비스 구축 및 Docker Compose 파일 작성을 통해 선언적 방식으로 서비스를 실행하는 방법을 알아본다. 11.1 Service "Hello World" hello-world 서비스 : 간단한 hello-world 컨테이너를 하나 실행하는 명령어 예제. docker swarm init // establish service abstractiondocker service create --publish 8080:80 --name hello-world dockerinaction/ch11_service_hw:v1 //..

Cloud/Docker 2024.12.14

Docker In Action 9. Public and private software distribution

공개 혹은 비공개 소프트웨어 배포 9.1 배포 방법 선택 하기여러 사항을 고려하여 개발 실정에 맞는 배포 방법을 선택하게 된다. 배포 스펙트럼 왼쪽으로 기술될 수록 배포 방식은 단순하나 제한적인 방식으로 제공된다.오른쪽으로 기술될 수록 배포 방식은 복잡하나 커스터 마이즈가 쉽게 되므로 유연하다. 선택 기준배포 방식을 선택함에 있어 기준점이 될 수 있는 요소를 나열 해본다. Cost 비용대게 낮은 비용이 최선의 선택이다. 프로젝트에 주어진 예산에 따라 결정된다. Visibility 가시성해당 프로젝트는 공개되어서는 안된다. Transportation 전송배포 환경의 네트워크 전송 속도와 대역폭은 배포 방식을 선택하는데 영향을 줄 수 있다. Longevity 지속 가능성공개되지 않은 배포 방식을 공개된 방식..

Cloud/Docker 2024.12.09

Docker In Action 8. Building image automaticall with Dockerfiles

Dockerfile 이란docker 이미지를 빌드하는 데 쓰이는 지시사항들의 모음 8.1 Dockerfile을 이용하여 ubuntu-git 빌드하기 Dockerfile이라는 이름으로 파일을 만들고 다음 내용을 작성한다.FROM ubuntu:latestLABEL maintainer="dia@allingeek.com"RUN apt-get update && apt-get install -y gitENTRYPOINT ["git"] 이미지 빌드하기docker buildx build --tag ubuntu-git:auto .auto 태그로 된 이미지가 존재하는 것을 볼 수 있다. 설명- FROM : 기본이 되는 이미지- LABEL : key=value 형태로 label을 부여한다.- RUN : 컨테이너를 실행한 후..

Cloud/Docker 2024.12.08

Docker In Action 7. Packaging software in images

이미지 빌드를 통한 소프트웨어 패키징 7.1 컨테이너로 부터 도커 이미지 빌드 도커에서 union filesystem (UFS)기반의 마운트를 통해 컨테이너의 파일 시스템 기능을 제공한다. 7.1.1 Packaging "Hello, World" 예시) 나만의 이미지 빌드-> 기존 이미지로 컨테이너를 실행하자.-> 컨테이너의 파일 시스템에 변경 사항을 만들자.-> 변경 사항을 이미지로 커밋 한다. // 1. ubuntu:latest 이미지를 가져와 컨테이너를 실행한 후 HelloWorld 파일을 만든다.docker container run --name hw_container ubuntu:latest touch /HelloWorld// 2. 현재 컨테이너를 이미지로 커밋 하자docker container c..

Cloud/Docker 2024.12.06

Docker In Action 6. Limiting risk with resource controls

A Process In Isolation, 프로세스 단위의 고립성 수준을 이용하는 도커 컨테이너 도커 컨테이너의 8가지 주요 특징MNT - filesystem access and structurechroot() - Controls location of filesystem rootCgroups - Resource protectionPID - Process identifiers and process capabilitiesNET - Network access and structureUTS - Host and domain nameUSR - Usernames and identifiersIPC - Communication by shared memory 6.1 자원 사용 가능 제어 주어진 물리 머신에서 CPU 사용과..

Cloud/Docker 2024.12.04

Docker In Action 5. Single-host networking

Docker Network로컬 컴퓨터에 연결된 네트워크는 IP 주소를 통해 인터넷 등의 통신을 가능하게 한다.도커가 만드는 가상 네트워크는 모든 실행 중 인 컨테이너와 로컬 컴퓨터가 연결된 네트워크에 연결한다. Bridge 여러 네트워크가 한 네트워크 처럼 동작하도록 연결하는 네트워크 인터페이스, 징검 다리 역할 도커 네트워크 확인 docker network ls 종류bridge 이름의 네트워크는 bridge 드라이버를 통해 제공되는 네트워크이다. bridge 드라이버는 컨테이너간 연결을 제공한다.host 이름의 네트워크에 있는 컨테이너들은 컨테이너가 아닌 일반 프로그램이 존재하는 호스트 네트워크를 공유한다. none 네트워크는 null 드라이버를 사용하고 해당 네트워크에 있는 컨테이너는 외부와 통신이 ..

Cloud/Docker 2023.10.22

Docker In Action 4. Working with Storage and Volumes

도커 스토리지와 볼륨 Storage and Volumes 파일 트리와 마운트 지점Mount Points는 호스트의 파일 시스템에 대한 루트 경로를 기준으로 데이터를 접근할 수 있는 지점을 제공한다.이러한 마운트 지점은 사용자로 하여 리눅스 환경에서의 원본 맵핑이 어떻게 되든 알 필요 없이 호스트 시스템의 파일 트리를 사용할 수 있게 해준다. 도커는 컨테이너 생성 시 MNT namespace와 유일한 파일 시스템의 루트를 제공한다.이러한 방식으로 호스트 파일 시스템으로 부터 컨테이너에서 실행되는 환경으로의 마운트 지점을 제공하여 컨테이너에게 스토리지 접근을 가능하게한다. 도커 마운트 타입도커의 마운트 타입은 3가지로 나뉜다.Bind mountsIn-memory storageDocker volumes예시)도..

Cloud/Docker 2023.10.19

Docker In Action 3. Software Installation Simplified

소프트웨어 식별하기 Named Repository 이름을 가진 저장소image를 모아둔 저장소. 이미지 저장소에 대한 주소는 위 예시 처럼 url 형식으로 표현된다.registry가 공개된 Docker Hub를 가리킬 경우 예시로 docker.io 호스트 이름을 가진다.{RegistryHost}/{UserName}/{ShortName}:{Tags} Tags각 이미지에 대한 빌드 태그(이름), git의 브랜치처럼 특정 기능 혹은 날짜에 대한 별칭을 의미.latest라는 특별 태그는 항상 최신으로 빌드된 이미지를 뜻 함.ex) nginx:latest 어디서 설치 하는가Repositories는 Registry에서 검색하여 이미지를 확인하고 설치할 수 있다.Docker Inc에서 관리하는 Docker Hub는 ..

Cloud/Docker 2023.10.16

Docker In Action 2. 도커 컨테이너에 실행하기

도커 컨테이너에 실행하기도커 명령어 docker help도커 명령어 리스트와 간단한 설명을 보여준다.Common Commands : run, exec, ps, build, pull, pushManagement Commands: builder, compose, container, image, networkSwarm Commands: swarmCommands: attach, commit, cp, create, diff, kill, start, stopdocker help cp자세한 명령어 사용법을 알 수 있다.웹 사이트 모니터 구축 예제웹 서버 nginx, 메일 전송 담당하는 mailer 그리고 이 두 어플리케이션을 모니터링하는 watcher 시스템을 구축해본다.nginx 웹 서버 : 80 port를 사용하..

Cloud/Docker 2023.10.15