본문 바로가기
반응형

도커69

[TIL] : 133 일일 배움을 위한 Today I Learned ! Docker 도커 컴포즈와 YAML 파일 작성에 대해 공부하고 있다. 2022.03.08 - [Server & System/Docker] - [Docker] : 도커 컴포즈의 프로젝트, 서비스, 컨테이너 2022.03.08 - [Server & System/Docker] - [Docker] : YAML 파일 작성(1) MariaDB CentOS에서 MariaDB를 설치하고 셋팅해주고 클라이언트 툴을 통해 접속해 보는 실습을 진행했다. 2022.03.08 - [Data Base/MariaDB] - [MariaDB] : CentOS에서 MariaDB 설치 및 셋팅 Spring Boot 학교 수업에서 스프링 부트를 알려주면서 이론적인 부분 먼저 정리해 봤다. .. 2022. 3. 8.
[Docker] : YAML 파일 작성(1) YAML 파일 작성 도커 컴포즈를 실 사용하기 위해 더 많은 옵션과 명령어를 공부해야 하고 YAML 파일 작성에도 익숙해야 한다. 기존에 사용하던 run 명령어를 YAML 파일로 변환해 사용하는 게 도커 컴포즈의 사용법이다. YAML 파일은 버전, 서비스, 볼름, 네트워크 이렇게 총 4개의 정의 항목으로 구성된다. 가장 많이 사용하는 건 서비스 정의이고 볼륨과 네트워크 정의는 서비스로 생성된 컨테이너에 선택적으로 사용된다. 항목의 하위 항목을 정의하기 위해 2개의 공북으로 들여쓰기해서 상위 항목과 구분한다. 버전 정의 버전은 YAML 맨 윗 부분에 정의한다. version: '3.0' 서비스 정의 서비스는 컨테이너로 구현된다. 하나의 프로젝트로서 도커 컴포즈에 의해 관리된다. services: my_co.. 2022. 3. 8.
[Docker] : 도커 컴포즈의 프로젝트, 서비스, 컨테이너 도커 컴포즈의 프로젝트, 서비스, 컨테이너 도커 컴포즈는 컨테이너를 프로젝트 및 서비스 단위로 구분하기 떄문에 컨테이너의 이름은 일반적으로 프로젝트이름_서비스이름_서비스내에서컨테이너의번호로 구성되어 있다. 하나의 프로젝트는 여러 개의 서비스로 구성된다. 여러 서비스는 다시 여러 컨테이너로 구성된다. 스웜 모드에서의 서비스와 마찬가지로 하나의 서비스에는 여러 컨테이너가 존재할 수 있도록 컨테이너의 번호를 붙여 서비스 내의 컨테이너를 구분한다. docker-compose scale mysql=2 docker-compose ps 컨테이너 목록을 확인해 보면 서비스의 컨테이너가 늘어난 것을 확인할 수 있다. 컨테이너 수를 늘이고 줄여서 일정하게 유지할 수 있다. docker-compose down 명령어로 프로.. 2022. 3. 8.
[TIL] : 132 일일 배움을 위한 Today I Learned ! Docker 도커 컴포즈와 노드 라벨에 대해 공부했다. 이쯤 되니까 머리가 복잡하다. 2022.03.07 - [Server & System/Docker] - [Docker] : 노드 AVAILABILITY변경하기 2022.03.07 - [Server & System/Docker] - [Docker] : 노드 라벨 추가하기 2022.03.07 - [Server & System/Docker] - [Docker] : service 제약 설정 2022.03.07 - [Server & System/Docker] - [Docker] : 도커 컴포즈를 사용하는 이유 2022.03.07 - [Server & System/Docker] - [Docker] : 도커 컴포즈.. 2022. 3. 7.
[Docker] : docker-compose.yml 작성과 활용하기 docker-compose.yml 작성과 활용 docker run -d --name mysql \\ alicek106/composetest:mysql \\ mysqld docker run -d -p 80:80 \\ --link mysql:db --name web \\ alicek106/composetest:web \\ apachectl -DFOREGROUND run 명령어를 docker-compose.yml 파일로 변환해 컨테이너를 생성하고 실행한다. version : '3.0' services: web: image: alicek106/composetest:web ports: - "80:80" links: - mysql:db command: apachectl -DFOREGROUND mysql: image.. 2022. 3. 7.
[Docker] : 노드 라벨 추가하기 노드에 라벨을 추가는 노드 분류와 비슷하다. 라벨은 키-값 형태를 가지고 있고 특정 노드에 라벨을 추가하면 서비스를 할당할 때 컨테이너를 생성할 노드의 그룹을 선택하는 게 가능하다. docker node update \\ --label-add storage=ssd \\ swarm-worker1 swarm-worker1 노드 라벨을 storage=ssd로 설정해 storage라는 키에 ssd라는 값을 설정해 준다. docker node inspect --pretty swarm-worker1 docker node inspect 명령으로 확인할 수 있다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 7.
[TIL] : 131 일일 배움을 위한 Today I Learned ! Docker 여러 타입의 볼륨 생성과 오버레이 네트워크에 대해 공부했다. 2022.03.06 - [Server & System/Docker] - [Docker] : 사용자 정의 오버레이 네트워크 2022.03.06 - [Server & System/Docker] - [Docker] : 서비스 디스커버리 2022.03.06 - [Server & System/Docker] - [Docker] : volume 타입의 볼륨 생성 2022.03.06 - [Server & System/Docker] - [Docker] : bind 타입의 볼륨 생성 2022.03.06 - [Server & System/Docker] - [Docker] : 스웜 모드에서 볼륨의 한계점.. 2022. 3. 6.
[Docker] : 스웜 모드에서 볼륨의 한계점 서비스를 할당받을 수 있는 모든 노드가 볼륨 데이터를 가지고 있어야 해서 스웜 클러스터에서 볼륨을 사용하기 어렵다. 스웜 모드에서는 도커 볼륨이나 호스트와의 볼륨 사용이 적합하지 않은 기능일 수도 있다. 해결하기 위해 어느 노드에서도 접근 가능한 퍼시스턴트 스토리지(Persistent Storage)를 사용하는 것이다. 퍼시스턴트 스토리지는 호스트와 컨테이너와 별개로 외부에 존재해 네트워크로 마운트 할 수 있는 스토리지이다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 6.
[Docker] : bind 타입의 볼륨 생성 bind 타입의 볼륨 생성 바인드 타입은 호스트와 디렉터리를 공유할 때 사용된다. 공유 될 호스트의 디렉터리를 설정해야 하므로 source 옵션을 반드시 명시해야 한다. docker service create --name ubuntu \\ --mount type=bind, source=/root/host, target=/root/container \\ ubuntu:14.04 \\ ping docker.com 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 6.
[Docker] : volume 타입의 볼륨 생성 volume 타입의 볼륨 생성 스웜 모드에서 도커 볼륨을 사용하는 서비스를 생성하기 위해 —mount 옵션의 type 값에 volume를 지정해 줘야한다. docker service create --name ubuntu \\ --mount type=volume, source=myvol, target=/root \\ ubuntu:14.04 \\ ping docker.com type에 volume를 적어준다. source는 사용할 볼륨, target은 컨테이너 내부에 마운트 될 디렉터리의 위치이다. docker service create --name ubuntu \\ --mount type=volume, target=/root \\ ubuntu:14.04 \\ ping docker.com source 옵션을.. 2022. 3. 6.
[Docker] : 사용자 정의 오버레이 네트워크 사용자 정의 오버레이 네트워크 스웜 모드는 자체 키-값 저장소를 가지고 있어 사용자 정의 오버레이 네트워크를 생성하고 사용할 수 있다. docker network create \\ --subnet 10.0.9.0/24 \\ -d overlay \\ myoverlay -d 명령어로 네트워크 드라이버를 overlay로 설정하고 —subnet 옵션으로 오버레이 네트워크의 서브넷을 10.0.9.0으로 설정했다. 이렇게 설정한 네트워크의 이름은 myoverlay가 된다. docker network ls 명령어로 생성한 오버레이 네트워크를 확인한다. 새롭게 생성한 오버레이 네트워크의 SCOPE가 swarm으로 설정되어 있는데 이것은 스웜 클러스터에서만 사용할 수 있는 네트워크라는 뜻이고 매니저 노드에서 docker.. 2022. 3. 6.
[TIL] : 130 일일 배움을 위한 Today I Learned ! Spring Boot API 예외처리 중 HandlerExceptionResolver에 대해 조금 더 공부했다. 2022.03.05 - [Framework/Spring Boot] - [Spring Boot] : HandlerExceptionResolver 활용하기 Docker 도커 스터디 진도에 맞춰 공부를 진행했다. 2022.03.05 - [Server & System/Docker] - [Docker] : config 사용하기 2022.03.05 - [Server & System/Docker] - [Docker] : 도커 스웜 네트워크 2022.03.05 - [Server & System/Docker] - [Docker] : ingress 네트워크 20.. 2022. 3. 5.
[Docker] : docker_gwbridge 네트워크 docker network ls | grep docker 오버레이 네트워크를 사용하지 않는 컨테이너는 기본적으로 존재하는 브리지 네트워크를 사용해 외부와 연결하지만 오버레이 네트워크는 이와 다른 브리지 네트워크인 docker_gwbridge 네트워크와 함께 상요된다. docker_gwbridge 네트워크는 외부로 나가는 통신 및 오버레이 네트워크의 트래픽 종단덤(VTEP) 역할을 담당하게 된다. docker_gwbridge 네트워크는 컨테이너 내부의 네트워크 인터페이스 카드 중 eth1과 연결된다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 5.
[Docker] : 오버레이 네트워크 docker ps --format "table {{.ID}}\\t{{.Status}}\\t{{.Image}}" docker exec 컨테이너ID ifconfig 명령어로 컨테이너 내부에서 ifconfig 명령어를 실행해 가상 네트워크 인터페이스를 출력한다. docker ps --format "table {{.ID}}\\t{{.Status}}\\t{{.Image}}" docker exec 컨테이너ID ifconfig 컨테이너마다 eth0, eth1, lo가 할당 된 것을 확인할 수 있고 swarm-manager에서 생성도니 컨테이너와 swarm-worker1에서 생성된 컨테이너 IP 주소가 차례로 할당됐다는 것이다. ingress 네트워크는 오버레이 네트워크 드라이버를 사용하는데 여러개의 도커 데몬을 하나.. 2022. 3. 5.
[Docker] : ingress 네트워크 ingress 네트워크는 스웜 클러스터를 생성하면 자동으로 등록되는 네트워크다. 스웜 모드를 사용할 때만 유효하다. docker network ls | grep ingress 매니저 노드, 스웜 클러스터에 등록된 노드라면 전부 ingress 네트워크가 생성된다. docker service create --name hostname \\ -p 80:80 \\ --replicas=4 \\ alicek106/book:hostname 위 이미지는 컨테이너의 호스트 이름, 즉 임의로 할당된 16진수를 출력하는 PHP 파일이 들어있는 웹 서버이다. docker ps --format "table {{.ID}}\\t{{.Status}}\\t{{.Image}}" 각 노드에서 명령어로 컨테이너 ID를 확인한다. 어떤 노드의.. 2022. 3. 5.
[Docker] : config 사용하기 secret 사용과 거의 비슷하다. docker config create registry-config config.yml 레지스트리의 설정 파일을 registry-config라는 이름의 config로 저장한다. docker config ls data 항목이 있는 것을 확인할 수 있다. echo Data부분적기 | base64 -d config는 입력된 값을 base64로 인코딩해 저장하고, base64 명령어를 통해 디코딩해 원래 값을 확인할 수 있다. docker service create --name yml_registry -p 5000:5000 \\ --config source=registry-config, target=/ect/docker/registry/config.yml \\ registry:.. 2022. 3. 5.
[Docker] : 스웜 클래식과 도커 스웜 모드 스웜 클래식과 도커 스웜 모드 스웜 클래식과 스웜 모드는 여러 대의 도커 서버를 하나의 클러스터로 만들어 컨테이너를 생성하는 여러 기능을 제공한다. 컨테이너를 득정 도커 서버에 할당도 가능하고 유동적으로 서버도 확장할 수 있다. 스웜 클러스터에 등록된 서버의 컨테이너를 쉽게 관리할 수 있다. 도커 스웜 모드가 실제 운영 환경에서 많이 쓰이지는 않지만 서버 클러스터에서 컨테이너를 어떻게 다루는지 기초 지식을 쌓기엔 좋다. 도커 스웜에는 두 종류가 있는데 하나는 도커 버전 1.6 이후부터 사용할 수 있는 컨테이너로서의 스웜이고 두 번째에는 도커 1.12 이후부터 사용할 수 있는 도커 스웜 모드이다. 두 종류를 구분하기 위해 첫 번째를 스웜 클래식, 두 번째를 스웜 모드라고 부른다. 스웜 클래식과 스웜 모드의.. 2022. 3. 3.
[Docker] : 도커 스웜을 사용하는 이유 도커 스웜을 사용하는 이유 앞에서 보통 하나의 호스트를 기준으로 한다. docker ps 명령어는 하나의 도커 엔진에 존재하는 컨테이너의 목록을 출력하고 create, run 명령어 또한 하나의 도커 엔진에 컨테이너를 생성한다. 하지만 도커를 운영 환경에 실제로 적용하면 조금 달라진다. 하나의 호스트 머신에서 도커 엔진을 구동하다 CPU나 메모리 디스크 용량과 같은 자원이 부족한 경우가 있는데 이때 가장 편한 답은 성능이 좋은 서버를 새로 사는 것 이지만 별로 좋은 방법이 아니고 가장 많이 사용하는 방법은 여러 대의 서버를 클러스터로 만들어 자원을 병렬로 사용하는 것이다. 이렇게 되면 적당한 성능의 서버 여러 대를 하나의 자원 pool로 만들어 사용할 수 있고 성능이 좋은 비싼 서버를 사지 않아도 된다... 2022. 3. 3.
[Docker] : 도커 파이썬 라이브러리 파이썬 라이브러리를 사용하기 위한 환경은 Python 2.7이다. 리눅스를 설치하면 기본적으로 파이썬이 설치되어 있어서 도커 엔진을 리눅스 환경에서 사용하고 있으면 따로 설치가 필요 없다. 도커 홈페이지에서 docker-py로 파이썬 라이브러리를 확인할 수 있다. apt-get install python-pip -y 우분투에서 pip 설치 yum install epel-release -y yum install python-pip -y CentOS에서 pip 설치 pip install docker pip로 도커 라이브러리를 설치한다. 라이브러리 설치를 확인하기 위해 파이썬 셸을 실행해 도커 클라이언트를 실행한다. python import docker client=docker.DockerClient(base.. 2022. 3. 3.
[Docker] : Remote API 라이브러리를 이용한 도커 사용 필요에 따라 -H 옵션을 통해 원격의 도커 데몬을 제어하기 위해 사용하는 것도 좋지만 컨테이너 애플리케이션이 수행 할 작업이 많거나 초기화 등에 복잡한 과정이 포함되어 있다면 도커를 제어하는 라이브러리를 사용해 좀 더 쉽게 해결이 가능하다. 도커를 제어하고 싶을 때 Remote API에 대한 요청을 소스코드로 코딩 할 필요가 없고, 이미 만들어 놓은 라이브러리를 통해 사용할 수 있다. 이런 라이브러리 목록은 SDK 페이지에서 확인이 가능하다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 2.
[TIL] : 125 일일 배움을 위한 Today I Learned ! Docker 도커 보안 적용하는 것을 공부하고 도커 스토리지 드라이버에 대해 공부했다. 2022.02.28 - [Server & System/Docker] - [Docker] : 도커 데몬에 보안 적용하기 --tlsverify 2022.02.28 - [Server & System/Docker] - [Docker] : 도커 스토리지 드라이버 변경하기 --storage-driver 2022.02.28 - [Server & System/Docker] - [Docker] : 스토리지 드라이버 원리, CoW 및 RoW 그리고 이미지와 컨테이너 2022.02.28 - [Server & System/Docker] - [Docker] : AUFS 드라이버 사용하기​ S.. 2022. 2. 28.
반응형