개발 47

Docker 빌드에서 운영까지 (using docker compose)

[목차] 1. 도커컴포즈란? 2. 도커컴포즈로 컨테이너 실행 2-1. 도커 컴포즈로 동작시키는 웹서버 예시 2-2. 도커 컴포즈 명령어 3. 빌드에서 운영까지 1. 도커컴포즈란? 여러 컨테이너를 일괄적으로 정의하고 실행할 수 있는 툴 - yaml 파일로 실행 요청 - 하나의 서비스를 운영하기 위해서는 여러 개의 애플리케이션이 동작해야 함 - 컨테이너화 된 애플리케이션들을 통합 관리할 수 있음 - 도커 컴포즈 설치 문서(Install the Compose standalone) : https://docs.docker.com/compose/install/other/ curl -SL https://github.com/docker/compose/releases/download/v2.14.2/docker-compo..

개발/DevOps 2022.12.30

Docker 컨테이너간 통신

[목차] 1. Container Network Model 2. port-forwarding 3. 컨테이너 네트워크 추가하기(고정 ip 사용하기) 4. 컨테이너끼리 통신하기 1. Container Network Model docker0 - virtual ethernet bridge: 172.17.0.0/16 - L2 통신기반 - container 생성 시 veth 인터페이스 생성 (sandbox) - 모든 컨테이너는 외부 통신을 docker0 통해 진행 - container running 시 172.17.X.Y 로 IP 주소할당 - 시스템에서 docker0 확인 ip addr brctl로 브릿지 확인 # 설치가 필요할 수 있음. apt install -y bridge-utils brctl show dock..

개발/DevOps 2022.12.29

Docker Container Storage

[목차] 1. 데이터 보존 방법 2. 컨테이너끼리 데이터 공유하기 3. 컨테이너 데이터 보존 테스트 4. volume 조회 및 삭제 5. 컨테이너끼리 데이터 공유하기 테스트 - 컨테이너 이미지는 readonly(ro), run으로 동작중일 때 readwrite(rw) 가능 - 컨테이너에 추가되는 데이터들은 별도의 RW 레이어에 저장 - Union File System(또는 Overlay): ro레이어와 rw레이어의 변경사항이 마치 하나인 것처럼 만들어서 보여주는 기술 - docker rm 명령어로 컨테이너를 삭제할 경우 rw 데이터도 삭제됨 1. 데이터 보존 방법 컨테이너가 만들어주는 데이터를 영구적을 보존하려면, docker host에다가 특정 저장소를 만들어 저장한다. - volume 옵션 사용 -v..

개발/DevOps 2022.12.29

Docker 컨테이너 리소스 관리

[목차] 1. Memory 리소스 제한 2. CPU 리소스 제한 3. Block I/O 제한 4. 리소스 모니터링 5. stress container 생성 6. cAdvisor 실행 1. Memory 리소스 제한 - 제한 단위는 b, k, m, g로 할당 옵션 의미 --memory, -m 컨테이너가 사용할 최대 메모리 양을 지정 --memory-swap 컨테이너가 사용할 스왑 메모리 영역에 대한 설정 메모리+스왑. 생략 시 메모리의 2배가 설정됨 --memory-reservation --memory 값보다 적은 값으로 구성하는 소프트 제한 값 설정 --oom-kill-disable OOM Killer가 프로세스 kill 하지 못하도록 보호 docker run -d -m 512m nginx:1.14 doc..

개발/DevOps 2022.12.29

Docker Registry 컨테이너 보관창고

- Docker Registry는 컨테이너 이미지를 저장하는 저장소를 말한다. - 도커닷컴에서 직접 운영중인 Public 도커 허브(hub.docker.com)가 있고, 사내 컨테이너 저장소인 Private Registry 등 2종류가 있다. - docker hub에 있는 이미지를 웹으로 검색할 수도 있고, cli환경에서 docker search [키워드명] 명령어를 통해서도 검색 가능하다. - 사내에서 private 컨테이너 저장소를 운영할 수 있도록 도와주는 registry 컨테이너 https://hub.docker.com/_/registry registry - Official Image | Docker Hub About Official Images Docker Official Images are a..

개발/DevOps 2022.12.28

Docker 컨테이너 만들기

[목차] 1. Dockerfile이란? 2. 대표 Dockerfile 문법 3. docker image 실행 4. docker hub 로그인 5. 만든 이미지 파일 hub에 푸시 docker 컨테이너는 개발한 애플리케이션(실행파일)과 운영환경이 모두 들어있는 독립된 공간이다. (예: node:12 / 소스코드 / 실행 명령어) MSA(Micro Service Architecture) 환경의 Polyglot 애플리케이션을 운영할 수 있다. (Polyglot Programming: 다양한 언어를 사용하여 프로그래밍 하는 것) 각각의 Application Service에 맞춰 Container를 만들어 낸다. 1. Dockerfile이란? - Container를 만들 수 있도록 조와주는 명령어 집합 - 쉽고,..

개발/DevOps 2022.12.27

Docker 이미지와 컨테이너 관련 명령어

- docker 이미지 검색 docker search [옵션] - docker 이미지 다운로드 docker pull [옵션] 뒤에 태그명 생략하면 latest 버전으로 자동 다운로드됨 - 컨테이너 이미지 레이어가 들어가는 곳 /var/lib/docker/overlay2 - 저장된 이미지 조회 docker images 또는 docker image ls - 다운 받은 이미지 상세보기 docker inspect [옵션] # --format 옵션 예제. 출력값 중에 특정 키의 값만 출력 docker inspect --format '{{.NetworkSettings.IPAddress}}' webserver #172.17.0.2 # alias 사용해 줄여서 사용할 수도 alias cip=docker inspect ..

개발/DevOps 2022.12.27

Docker 엔진 설치

[목차] 1. 리눅스에서 Docker(도커) 엔진 설치 2. 윈도우(window)에서 Docker 설치 3. 설치 확인 및 실행 4. 특정 계정에 Docker 관리자 권한주기 엔진만 설치하고자 하면 아래 주소로 접근할 수 있다. 설치는 아래 도커 설치 페이지에 자세히 적혀 있어서 사실 따로 정리할 게 없다. 1. 리눅스에서 Docker(도커) 엔진 설치 https://docs.docker.com/engine/install Docker Engine installation overview docs.docker.com - 설치에 필요한 명령어만 정리(centos 기준) # Set up the repository sudo yum install -y yum-utils sudo yum-config-manager \..

개발/DevOps 2022.12.27

Linux 기본 명령어

명령어 설명 기본 형식 주요 옵션 man 명령어 도움말 man 키워드 -k : 매뉴얼 목록을 검색 -s : [섹션숫자] 입력한 섹션에서 검색 ls 파일 목록 ls -a : 숨은 파일 보기 -l : 자세히 보기 -R : 하위 디렉토리까지 모두 출력 -d : 디렉토리 자체를 출력 mkdir 디렉토리 생성 mkdir -m : 퍼미션 설정 -p : 존재하지 않는 부모 디렉토리 생성 rmdir 디렉토리 삭제 *비어있을 때만 삭제 가능 rmdir -p : 비어있는 부모 디렉토리 함께 삭제 cd 디렉토리 이동 cd ~ : Home 디렉토리로 이동 - : 직전 디렉토리로 이동 cp 파일 복사 cp 원본파일명 목적지파일명 -i : overwrite 할 것인지 질문 -f : overwrite 질문없이 무조건 덮어쓰기 -r..

개발/Linux 2022.12.27

Linux 주요 디렉토리

이름 설명 /bin -> usr/bin ls 커맨드나 cp 커맨드와 같은 기본 커맨드를 저장하는 디렉토리. 특권 사용자, 일반 사용자 모두 이용하는 명령들이 배치되어 있다. /sbin -> usr/sbin 시스템 관리용 마운트가 저장되어 있는 디렉토리. 예를 들어 mount 커맨드나 reboot 커맨드 등. 관리 커맨드는 /usr/sbin이나 /usr/local/sbin 등에 배치되는 경우도 있다. /usr 각종 프로그램이나 커널 소스가 저장되는 디렉토리. /usr/local은 시스템 관리자가 애플리케이션을 설치하는 장소로 이용한다. /boot Linux 커널 등 OS의 시작에 필요한 파일을 배치하는 디렉토리. Linux 커널의 정체는 vmlinux라는 이름의 파일이다. /dev 하드디스크, 키보드, 디..

개발/Linux 2022.12.26
728x90
반응형