# 도커/쿠버네티스를 활용한 컨테이너 개발 실전 입문을 참고하였습니다. - 위키북스 - 

 

일반적으로 시스템은 단일 애플리케이션이나 미들웨어만으로는 구성되는 것이 아니다. 웹 애플리케이션은 리버스 플록시 역할을 하는 웹 서버를 프론트앤드에 배치하고 그 뒤로 비즈니스 로직이 담긴 애플리케이션 서버가 위치해 데이터 스토어 등과 통신하는 구조로 완성된다. 여러 애플리케이션 간의 연동 및 통신, 그리고 이들간의 의존관계를 통해 하나의 시스템이 구성되는 것이다. - 책 발췌 - 

 

우선, 기본적으로 한개의 컨테이너를 실행해보자. 

docker-compose 명령으로 컨테이너 실행하기

 도커 컴포즈는 yaml포맷으로 기술된 설정파일로, 여러 컨테이너를 한번에 관리할 수 있게 해준다. ($ docker-compose version 버젼확인)

BookPro:~ jason$ docker-compose version
docker-compose version 1.24.1, build 4667896b
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018
docker command 기본명령 docker-compose.yml 파일활용 (확장)
$ docker container run -d -p 9000:8080 example/echo:latest

version: "3" 

services:

   echo:

      image: example/echo:latest

      ports:

        - 9000:8080

 

(실행) $ docker-compose up

(정지 혹은 삭제) $ docker-compose down

# 여기서 잠시 ! docker-compose.yml에서 version 에 대해 알아보자. docker-engine 버젼에 따라 compose file format에서 버젼도 달라진다. (예) 도커 엔진이 18.06.0+ 일경우, Compose file format 은 3.7 이 된다.

https://docs.docker.com/compose/compose-file/compose-versioning/

   

 

 

 

 

 docker-compose 명령어 및 옵션

 $ docker-compose up -d --build

 --build 옵션을 사용하면, 도커 이미지를 강제로 다시 빌드하게 할 수 있다. -d 는 백그라운드에서 명령어가 실행된다. 

 

 docker-compose 여러 컨테이너 실행하기 

version: "3"
services:
  master:
    container_name: master
    image: jenkinsci/jenkins:2.142-slim
    ports:
      - 8080:8080
    volumes:
      -./jenkins_home:/var/jenkins_home
    links:
      - slave01
      
  slave01:
    container_name: slave01
    image: jenkinsci/ssh-slave
    environment:
      - JENKINS_SLAVE_SSH_PUBKEY=ssh-rsa AAAAABBCDF232NKD ......

docker-compose 파일을 위와 같이 작성한다. 

master와 같은 서비스에 있는 slave01을 link로 설정하여 master가 slave01 컨테이너명으로도 찾을수 있게 된다. 

volume 항목은 호스트와 컨테이너 사이에 파일을 공유할 수 있는 메커니즘이다. 

(cf. Dockerfile의 COPY인스트런션이나 docker container cp 명령은 파일 복사 기능)

volume:

 - [호스트의 디렉토리]:[컨테이너의 디렉토리] 

 

블로그 이미지

aze

,

지난 시간에 도커환경 위에서 Portainer를 설치해봤다. 

너무 간단히 설치돼서 사용자 설정이 있었으면 하는 아쉬움이 있었다. 그래서 Document를 찾아보니 역시 Portainer !!! 많은 옵션 --flag 들이 있었다. ^__^ 그래서 그중 정말 실속있는 몇가지 실습을 해보도록 하겠다. 

 

먼저, Docker Compose File을 다운받아보자 

curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml

실습. portainer volume 생성 및 compose file download

다운로드 받은 Portainer Agent Compose File을 확인하고 싶다면, 다운로드 위치에 portainer-agent-stack.yml 파일을 cat 이나 vi 로 열어서 확인할수 있습니다. 아래 실습들의 기능 추가들은 Compose File 에 설정을 추가하면서 진행하겠습니다. 

실습. portainer-agent-stack.yml 파일

 

Compose File을 받아서 바로 Swarm 환경에서 Portainer를 배포해보고 싶었으나, "아차, Docer Swarm 설치를 안했다."

docker swarm init 명령어를 수행하면 swarm 매니져노드 기본설정 끝입니다. 워커노드 추가 및 연결 실패 등 발생시 조치방법은 이전 페이지에서 자세히 다뤘으니 참고하시기 바랍니다. 

2019/06/15 - [관리프로그램 potainer] - 도커 관리 프로그램 Portainer 설치

2019/06/16 - [오케스트레이션 orchestration] - 클러스터 구성 도커스웜 설치와 Portainer Docker Swarm 우분투

실습. docker swarm init

docker swarm 설치후, 준비해놓은 Compose File 로 Portainer를 배포합니다.  

docker stack deploy --compose-file=portainer-agent-stack.yml portainer

제 노트북에서는 9초 걸렸네요~ (Mac 2.3Ghz, 8GB) 

 

설치했으니, 그럼 접속해봐야 합니다. [IP]:9000 를 웹브라우져에 입력합니다. 

저처럼 노트북에 설치하신 분들 [Localhost]:9000 를 입력하면 아래와 같은 창이 뜨면 성공입니다. 

실습. Portainer 메인 화면 접속


조금 전문가스럽고 있어보이기 위해서, Logo를 변경해보겠습니다. Porainer.io 가 아니라 회사 CI 나 Logo로 변경함을 말씀드립니다. 

우선, Logo에 넣고 싶은 이미지의 링크주소를 찾습니다. 주로 구글링으로 원하는 이미지명과 svg를 입력하면 잘 찾아졌습니다. ( copy link ) 

 

실습. portainer-agent-stack.yml 파일에 logo 설정 넣기
실습. portainer-agent-stack.yml 파일 설정을 추가했으나, 실패 1 
실습. 명령어로 시도해봐도 실패2

로고 이미지 사이즈를 반드시 155 x 55 (px) 픽셀로 하여야 합니다. 먼저 이미지 사이즈를 각자 사진툴로 조정하신후, 아래 명령어를 수행합니다.

$ docker run -d -p 9000:9000 -/var/run/docker.sock:/var/run/docker.sock portainer/portainer --logo [file 경로]  

 

'관리프로그램 potainer' 카테고리의 다른 글

도커 관리 프로그램 Portainer 설치  (0) 2019.06.15
블로그 이미지

aze

,