반응형

1. 시험환경

    ˙ ubuntu v20.04

    ˙ docker-compose

   ˙ Grafana (DockerHub)

 

2. 목적

    ˙ Grafana 서비스를 위한 docker-compose.yml 파일을 작성한다.

    ˙ docker-compose를 이용하여 Grafana 서비스를 기동한다.

 

3. 적용

    ① Grafana container를 실행하기 위한 설정 파일을 구성한다.

        - image : repository 및 image

        - ports: 외부 접속을 위한 port 매핑

        - volumes : ./files/grafana.ini (grafana 설정, host 경로)를 docker container 경로의 /etc/grafana/grafana.ini로 복사

        - grafana-data : /var/lib/grafana (grafana DB 데이터가 저장되는 경로, 기본DB는 SQLite 설정)

Dockerfile
0.00MB

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ cat docker-compose.yml
version: '3.9'
 
services:
  grafana:
    image: grafana/grafana:8.2.6
    restart: unless-stopped
    environment:
      GF_INSTALL_PLUGINS: grafana-clock-panel
    ports:
    - 3000:3000
    volumes:
    - ./files/grafana.ini:/etc/grafana/grafana.ini:ro
    - grafana-data:/var/lib/grafana
    logging:
      driver: "json-file"
      options:
        max-size: "8m"
        max-file: "10"
 
volumes:
  grafana-data: {}
cs

 

    ② grafana 환경 변수 설정 파일

grafana.ini
0.00MB

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
app_mode = production
instance_name = ${HOSTNAME}
 
############### Server ####################
[server]
protocol = http
http_addr =
http_port = 3000
 
############### Logging ###################
[log]
mode = console
level = info
 
############### Alert ####################
[alerting]
enabled = true
 
cs

 

    ③ Grafana container를 서비스하기 위해 구성한 docker-compose.yml 파일을 실행한다.

        - $ docker-compose up -d

 

    ④ Grafana container 쉘에 접속하여 설정파일(grafana.ini)와 SQLite DB 설정이 되었는지 확인한다.

        - container 쉘 접속 : $ docker exec -it [image] sh

 

    ⑤ docker-compose 서비스를 제거한다.

        - $ docker-compose down -v

 

4. 결과

    ˙ 호스트 서버에 접속하여 Grafana 서비스 동작 여부를 확인한다.

        - URL : http://[호스트 서버 IP]:3000

 

반응형
반응형

1. 시험환경

    ˙ 윈도우

    ˙ Docker

 

2. 목적

    ˙ Container를 실행한다. (run)

    ˙ Container 상태(실행, 중지)를 제어한다. (start, stop)

    ˙ Container를 삭제한다. (rm)

 

3. 적용

    ① Docker Hub에는 docker image를 제공하고 있으며 docker 명령어를 이용하여 다운받아 사용할 수 있다.

        - URL : https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy

hub.docker.com

 

    ② docker hub에서 image를 다운로드(pull) 받을 수 있다.

        - 참고 링크 : https://languagestory.tistory.com/198

 

[docker] 도커허브(DockerHub) 저장소(repositor)에 이미지(image) pull/push

1. 시험환경 ˙ ubuntu v20.04 ˙ docker, DockerHub 2. 목적 ˙ 도커허브(DockerHub) 사용법을 알아보자. ˙ 도커 이미지를 도커허브(DockerHub) 저장소(Repository)에 등록한다. ˙ 도커허브(DockerHub) 저장소(Repository)에

languagestory.tistory.com

 

    ③ 다운(pull) 받은 image 목록을 확인한다.

        - $ docker images

 

    ④  image를 실행하여 container를 생성한다.

        - $ docker run [image]
        - $ docker run --name [container_name] [image]      : 이름을 지정하여 container 생성

container 생성 - 첫번째
container 생성 - 두번째

 

      생성된 container 목록 및 상태정보를 확인한다.

        - 1개의 image로 여러 개의 container를 생성할 수 있다.

 

    실행중인 container를 중지(stop) 한다.

        - $ docker stop [container_name 또는 container_id]

 

    container를 시작(start) 한다.

        - $ docker start [container_name 또는 container_id]

 

     container를 삭제(rm) 한다.

        -  $ docker rm [container_name 또는 container_id]     : 실행 중지 상태의 container 삭제
        -  $ docker rm -f [container_name 또는 container_id]     : container의 상태에 상관없이 삭제

 

반응형
반응형

1. 시험환경

    ˙ ubuntu v20.04

    ˙ docker, DockerHub

 

2. 목적

    ˙ 도커허브(DockerHub) 사용법을 알아보자.

    ˙ 도커 이미지를 도커허브(DockerHub) 저장소(Repository)에 등록한다.

    ˙ 도커허브(DockerHub) 저장소(Repository)에 등록된 이미지를 다운 받는다.

 

3. 적용

    ① 도커허브(DockerHub) 사이트에 가입하고 로그인한다.

        - URL : https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide.

hub.docker.com

 

    ②  DockerHub Private Repository에 접근하기 위한 "보안 접속 토큰"(security access token)을 생성한다.

 

    ③ CLI에서 docker push/pull 명령어를 수행하기 위해 "보안 접속 토큰"(security access token)을 설정한다.

 

    ④ 도커허브(DockerHub)에서 저장소(repository)를 생성한다.

 

 

    ⑤ 도커허브(DockerHub) 저장소(repository)와 동일한 이름으로 "이미지 tag명"을 변경하고, push 한다.

        - $ docker tag [image:version] [dockerhub-id/repository]

        - $ docker push [dockerhub-id/repository]

 

4. 결과

    ˙ 도커허브 저장소에 이미지가 저장된 것을 확인한다.

 

    ˙ 도커허브 저장소에서 저장된 이미지를 가져온다.(pull)

반응형
반응형

1. 시험환경

    ˙ ubuntu v20.04

    ˙ docker

 

2. 목적

    ˙ save/load 명령어를 이용하여 docker image를 파일로 저장/불러오기 명령어를 알아보자.

    ˙ 인터넷이 안되는 환경 등 docker image를 파일로 전달하기 위해 사용한다.

 

3. 적용

    ① docker image를 파일로 저장한다.

        - 명령어 형식 : $ docker save -o [파일명] [image]

 

    ② image를 삭제(docker rmi)하고 파일로 저장된 도커 이미지(image)를 load한다.

        - 명령어 형식 : $ docker load -i [파일명]

 

반응형
반응형

1. 시험환경

    ˙ ubuntu v20.04

    ˙ docker

 

2. 목적

    ˙ Dockerfile을 이용하여 docker image 생성하는 방법을 알아보자.

    ˙ build된 image를 실행하여 동작하는지 확인한다.

 

3. 적용

    ① docker image를 빌드(build)하기 위한 Dockerfile 경로에서 이미지를 빌드 명령을 실행한다.

        - 명령어 형식 : $ docker build --force-rm -t [image-tag-name] .

 

    ② build한 image를 확인한다.

 

    build한 image를 실행한다.

        - 명령어 형식 : $ docker run -d [image-tag-name]

 

4. 결과

    ˙ container 동작 여부를 확인한다.

        - 프로그램은 port 8080 접속시 "Hello World"를 반환하는 echo 서버이다.

 

반응형
반응형

1. 시험환경

    ˙ ubuntu v20.04

    ˙ docker

 

2. 목적

    ˙ docker image 파일을 다운로드 한다.

    ˙ docker image 수정 후 commit 명령어를 사용하여 변경점을 저장한다.

    ˙ 변경 사항이 적용된 docker image를 실행한다.

 

3. 적용

    ① docker hub로부터 image 파일을 다운로드 받는다.

        - 여기에선 ubuntu:focal을 다운 받았다.

        - 명령어 형식 : $ docker pull [image]

 

    ② image 실행과 동시에 container 내부 진입하여 테스트 파일(sample.txt)을 생성 한다. (image 수정)

        - 명령어 형식 : $ docker run -it --name [container-tag] [image]

        - container 빠져나오기 : # <ctrl> + <p>,<q>

 

    ③ 현재 container를 기반으로 새로운 image를 생성한다.

        - 명령어 형식 : $ docker commit -a [author] -m ["msg"] [container_name] [image_name_new]

 

4. 결과

    ˙ 실행중인 container를 종료하고, commit한 image를 실행시켜서 수정사항이 image에 적용되었는지 확인한다.

        - 수정사항 : ②번 절차에서 sample.txt 파일 여부를 확인한다.

반응형
반응형

1. 시험환경

    ˙ 우분투(ubuntu) v20.04

    ˙ minikube

 

2. 목적

    ˙ 우분투(ubuntu) 리눅스(linux) 환경에서 미니쿠베(minikube) 설치하는 방법을 알아보자.

 

3. 적용

    ① minikube 사이트에서 설치 가이드를 제공한다.

        - URL : https://minikube.sigs.k8s.io/docs/start/

 

minikube start

minikube is local Kubernetes

minikube.sigs.k8s.io

 

    ② 설치 가이드에 따른 설치 명령어를 각각 실행하거나 하나의 스크립트 파일로 구성하여 일괄 실행한다.

        - 실행 모드 : chmod u+x [스크립트파일.sh]

install-minikube.sh
0.00MB

1
2
3
4
5
6
7
8
#!/usr/bin/env bash
## INFO: https://minikube.sigs.k8s.io/docs/start/
 
set -euf -o pipefail
 
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
 
cs

 

4. 결과

    ˙ 설치된 버전을 확인한다.

        $ minikube version

반응형
반응형

1. 시험환경

    ˙ 우분투(ubuntu) 리눅스(linux) v20.04

    ˙ kustomize

 

2. 목적

    ˙ uibuntu  리눅스 환경에서 kustomize 설치하는 방법을 알아보자.

 

3. 적용

    ① kubernetes 사이트에서 설치 가이드를 제공한다.

        - URL : https://kubectl.docs.kubernetes.io/installation/kustomize/binaries/

 

Binaries

Install Kustomize by downloading precompiled binaries.

kubectl.docs.kubernetes.io

 

    ② 설치 가이드에 따라 설치 명령어를 각각 실행하거나 하나의 스크립트 파일로 구성하여 일괄 실행한다.

        - 실행 모드 : chmod u+x [스크립트파일.sh]

        - KUSTOMIZE_VERSION : 다운받을 패키지 버전 지정

install-kustomize.sh
0.00MB

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env bash
## INFO: https://kubectl.docs.kubernetes.io/installation/kustomize/binaries/
 
set -euf -o pipefail
 
KUSTOMIZE_VERSION=v4.4.1
 
# Download kustomize binary
curl -"https://raw.githubusercontent.com/kubernetes-sigs/kustomize/kustomize/${KUSTOMIZE_VERSION}/hack/install_kustomize.sh"  | bash
 
# Install to /usr/local/bin
sudo install -o root -g root -0755 kustomize /usr/local/bin/kustomize
 
cs

 

4. 결과

    ˙ 설치된 버전을 확인한다.

        $ kustomize version

 

반응형

+ Recent posts