도커

2021.02.05 - [프로그래밍 노트/도커] - 스웜(swarm)을 이용한 도커 컨테이너 배포_1 2021.03.27 - [프로그래밍 노트/도커] - 스웜(swarm)을 이용한 도커 컨테이너 배포_2 앞에서 포스팅한 스웜클러스터는 아직 상용화할수 없다. 왜냐하면 외부에서 서비스(echo_nginx)에 접근을 할 수 없기 때문인데 이 문제를 해결해보자. 마지막에 설정한 visualizer는 스웜 클러스터 외부에서 접근(localhost:9000)하다. 이것은 contraints설정에서 visualizer 컨테이너를 manager에 배치되도록했기 때문인데, 호스트로부터 manager까지 여러 단계에 걸친 포트 포워딩을 사용했기 때문에 문제가되지 않는다. docker-compose.yml version: ..
컨테이너를 단일 도커 호스트에만 배치하는 것은 간단하고 개발자가 관리하기도 쉽다. 그러나 많은 트래픽을 처리할 수 있는 실용적인 시스템은 여러 컨테이너가 각기 다른 호스트에 배치되는 경우가 많다. 또 컨테이너를 배치하는 방법과 하나 이상의 도커 호스트를 다루는 방법 역시 호스트 하나만을 다룰 때와는 달리 다양한 사항을 고려해야 한다. 도커 스웜이란 무엇인가? 도커 스웜은 여러 도커 호스트를 클러스터로 묶어 주는 컨테이너 오케스트레이션 도구의 한 종류이다. 컨테이너 오케스트레이션 도구없이는 도커 호스트 여러 대를 사용하는 확장성 있는 애플리케이케이션을 만들기가 어렵다. 도커 호스트에 어떤 컨테이너를 배치해야 하는지, 서로 다른 호스트에 위치한 컨테이너 간의 통신은 어떻게 제어하는지 등의 조율을 오케스트레이..
애플리케이션 내 단일 컨테이너의 적정 비중 실제 운영에서는 애플리케이션을 컨테이너 안에 어떻게 배치하는지가 매우 중요하다. 컨테이너 하나가 맡을 수 있는 적정 수준의 책임은 어느 정도일까? 세세하게 역할을 나누다가 시스템 전체의 복잡도가 올라가지는 않을까? 단일 컨테이너의시스템 내 비중은 어떻게 결정해야하는지 알아보자. 컨테이너 1개 = 프로세스 1개? 애플리케이션 + 인프라 = 도커 컨테이너 결과부터 말하자면, 컨테이너 1개 = 프로세스 1개 원칙은 괜찮게 생각될 수 있으나 지나치게 복잡해질수도 있다. 예를 살펴보자 정기적으로 작업을 실행하는 애플리케이션 정기적으로 어떤 작업을 실행하는 컨테이너가 있다고 가정해보자. 스케줄러 + 작업이 합쳐진 애플리케이션을 만든다면 컨테이너 1개 = 프로세스 1개 원칙..
젠킨스를 Master/Slave로 보통 구성한다고 한다. (사실 실무에서는 사용해본적이 없지만, 많은 블로그나 책에서 이렇게 사용한다고 한다.) 도커 컴포즈를 연습해볼겸 젠킨스를 Master/Slave로 구축을 해보자, Master : 관리 기능 및 작업 실행 지시 Slave : 실제 작업 진행 Master 젠킨스 컨테이너 실행하기 1.docker-compose.yml 작성 version: "3" services: master: container_name: master image: jenkins/jenkins:lts ports: - 9900:8080 volumes: - ./master_jenkins_home:/var/jenkins_home volumes 항목은 호스트와 컨테이너 사이에 파일을 공유할 수 ..
도커 컨테이너 다루기 도커 컨테이너는 이미지를 바탕으로 만듭니다. 따라서 우리는 도커 이미지, 도커 컨테이너를 다루는 법에 익숙해져야 합니다. 자 그럼 도커 컨테이너에 대해 알아봅시다. 도커 컨테이너 생애주기 실행 중, 정지, 파기의 3가지 상태를 갖습니다. 실행 중 상태 docker container run 명령의 인자로 지정된 도커 이미지를 기반으로 컨테이너가 생성되면 이 이미지를 생성했던 Dockerfile에 포함된 CMD 및 ENTRYPOINT 인스트럭션에 정의된 애플리케이션이 실행됩니다. 이 애플리케이션이 실행 중인 상태가 컨테이너의 실행 중 상태가 됩니다.(실행이 끝나면 정지 상태가 됨) 정지 상태 실행 중 상태에 있는 컨테이너를 사용자가 명시적으로 정지하거나 컨테이너에서 실행된 애플리케이션이..
도커 이미지 다루기 도커 사용법은 크게 이미지를 대상으로 하는 것과 컨테이너를 대상으로 하는 것으로 나뉩니다. 따라서 우리는 도커 이미지를 다루는 법과 도커 컨테이너를 다루는 법에 익숙해져야 합니다. 그 전에 도커 이미지가 구체적으로 무엇인지 알아보겠습니다. 한 마디로 말하면 도커 이미지는 도커 컨테이너를 만들기 위한 템플릿 입니다. 도커 이미지는 우분투 같은 운영 체제로 구성된 파일 시스템은 물론, 컨테이너 위에서 실행하기 위한 애플리케이션이나 그 의존 라이브러리, 도구에 어떤 프로세스를 실행할지 등의 실행 환경의 설정 정보까지 포함하는 아카이브 docker image build - 이미지 빌드 docker image build는 Dockerfile에 기술된 구성을 따라 도커 이미지를 생성하는 명령입니..
들어가며 몇 달전 MSA가 핫한 기술이라고 하여, 무작정 관련 서적을 사서 읽던 중.. 외계어 같은 도커 컴포즈? 컨테이너? 만나 한계에 부딪혀서 도커 공부를 시작하게되었습니다ㅎㅎ 아직 도린이지만, 공부한 내용을 공유하고자 합니다~ => 도커 컴포즈, 스웜, 쿠버네티스 같은 고급? 내용은 아직 정리를 못하였고 기초적인 내용(이미지, 컨테이너 다루기)이 포함되어있습니다. 컨테이너로 애플리케이션 실행하기 우선 로컬 PC에 도커가 설치되었다고 가정하고 시작하겠습니다. 도커는 https://hub.docker.com/search?q=&type=edition&offering=community 에서 받을 수 있습니다! 컨테이너로 애플리케이션을 실행하는 방법을 배우기 전에 도커 이미지와 도커 컨테이너의 관계를 먼저 ..
컨테이너 목록 확인하기(ps) docker ps [OPTIONS] -a 옵션을 사용하면 종료된 컨테이너까지 보여진다. 컨테이너는 종료되어도 삭제되지 않고 남아있다. 종료된 건 다시 시작할 수 있고 컨테이너의 읽기/쓰기 레이어는 그대로 존재한다. 컨테이너 중지하기(stop) docker stop [OPTIONS] CONTAINER [CONTAINER...] 실행중인 컨테이너를 하나 또 여러개 (띄어쓰기로 구분)중지할 수 있다. docker stop ${MYSQL_CONTAINER_ID} 도커 ID의 전체 길이는 64자리지만, 명령어의 인자로 전달할 때 전부 입력하지 않아도 된다. 압부분이 겹치지 않는다면 1-2자만 입력해도 된다. 컨테이너 제거하기(rm) docker rm [OPTIONS] CONTAINE..
깡냉쓰
'도커' 태그의 글 목록