반응형

1. 시험환경

    ˙ 윈도우 11

    ˙ MySQL 5.7

    ˙ Docker, Docker-Compose

 

2. 목적

    ˙ 도커, 도커컴포즈 기반으로 워드프레스를 설치한다.

    ˙ DB 및 Wordpress 데이터를 로컬 드라이브에 별도로 저장한다.

 

3. 적용

    ① 윈도우 운영체제에 도커 데스크탑이 설치 및 실행된 상태이어야 한다.

        - URL : https://www.docker.com/products/docker-desktop/

 

Docker Desktop: The #1 Containerization Tool for Developers | Docker

Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.

www.docker.com

 

    ② 도커 컴포트 파일을 구성한다.

        - DB와 Wordpress의 데이터를 윈도우 로컬 디렉토리로 마운트 설정한다.

        - 아래 양식에서 <<Window 로컬 디렉토리>> 부분을 마운트할 경로로 대체하여 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
version: "3.9"
    
services:
  wp-db:
    image: mysql:5.7
    volumes:
     - <<Window 로컬 디렉토리>>:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: db-root-1234
      MYSQL_DATABASE: wp-db
      MYSQL_USER: wp-user
      MYSQL_PASSWORD: wp-user-1234
    ports:
      - "3400:3306"
    
  wordpress:
    depends_on:
      - wp-db
    image: wordpress:latest
    volumes:
     - <<Window 로컬 디렉토리>>:/var/www/html
    restart: always
    environment:
      WORDPRESS_DB_HOST: wp-db:3306
      WORDPRESS_DB_USER: wp-user
      WORDPRESS_DB_PASSWORD: wp-user-1234
      WORDPRESS_DB_NAME: wp-db
    ports:
    - "8090:80"
cs

 

 

    ③ 도커 컴포즈를 실행한다.

        - docker-compose  -f  [파일명].yml  up

 

    ④ 도커 데스트탑에서 "Running" 상태인지 확인한다.

 

    ⑤ 워드프레스에 접속하여 초기 설치를 진행한다.

        - http://localhost:8090 (여기서는 Local 접속 8090 포트 사용)

 

4. 결과

    ˙ LocalPC Mount 경로에 저장된 DB 데이터

 

    ˙ LocalPC Mount 경로에 저장된 WP 데이터

 

 

반응형
반응형

1. 시험환경

    ˙ 윈도우

    ˙ Docker

    ˙ Redis

 

2. 목적

    ˙ Redis Docker를 다운(pull)받아 설치한다.

    ˙ Redis 버전을 확인하고 Redis-Cli에 접속하여 CRUD 기본 사용법을 확인한다.

 

3. 적용

    ① docker hub로부터 redis docker image 최신버전을 다운로드(pull) 받는다.

        - > docker  pull  redis

        - > docker  images

 

    ② Local 저장소에 저장된 Redis Docker 이미지를 실행한다.

        - > docker  run  -d  -p  6379:6379  [Image-id]

 

    ③ 실행중인 Redis Container 내부로 진입하여 설치 버전을 확인한다.

        -> docker  exec  -it  [container-id]  /bin/bash

 

    ④ Redis Cli에 접속하여 CRUD 명령어를 확인한다.

        -> redis-cli

 

반응형
반응형

1. 시험환경

    ˙ 윈도우

    ˙ Docker Desktop(docker, docker-compose)

 

2. 목적

    ˙ 윈도우 운영체제에서 Docker Desktop을 설치한다.

    ˙ Docker Desktop을 설치하면 docker와 docker-compose가 모두 설치된다.

 

3. 적용

    ① Docker 사이트에 접속한다.

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

 

Empowering App Development for Developers | Docker

Learn how Docker helps developers bring their ideas to life by conquering the complexity of app development.

www.docker.com

 

    ② 사이트 화면 "우측 상단"에 "Get Stared" 버튼을 클릭한다.

 

    ③ Windows "Docker Desktop" 설치 프로그램을 다운 받는다.

        - Docker Desktop : Docker Image를 사용할 수 있는 프로그램

        - Docker Hub : Docker Image가 저장된 Cloud 저장소

 

    ④ 설치 파일이 다운완료되면 실행한다.

 

    ⑤ Docker 설치가 완료되면 PC 재부팅한다.

 

4. 결과

    ˙ 바탕화면에 생성된 Docker Desktop을 실행하 GUI 화면이 나타나는 것을 확인한다.

Docker Desktop GUI

 

    ˙ 명령 프롬프트(CLI)에서 "docker 버전" 및 "docker" 명령어를 실행하여 동작을 확인한다.

반응형
반응형

1. 시험환경

    ˙ 우분투(ubuntu) v22.04

    ˙ 도커(docker) 최신버전

 

2. 목적

    ˙ 우분투(ubuntu) 리눅스 환경에서 도커(docker) 최선버전을 설치하는 방법을 알아보자.

 

3. 적용

    ① docker 공식 사이트에 접속한다.

        - URL : https://docs.docker.com/compose/install/

 

Overview

 

docs.docker.com

 

    ② 각 운영체제(Linux/MAC/Windows) 마다 도커(docker) 설치방법을 제공한다.

        - 여기서는 Linux Ubuntu 환경에서 설치한다.

 

    ③ 설치 가이드에 따라 script를 각각 실행하거나 스크립트 파일로 작성하여 일괄 실행한다.

        - chmod u+x [스크립트파일.sh]

install-docker.sh
0.00MB

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/env bash
## INFO: https://docs.docker.com/engine/install/ubuntu/
 
set -euf -o pipefail
 
DOCKER_USER=ubuntu
 
# Install dependencies
sudo apt-get update && sudo apt-get install -y \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg \
  lsb-release
 
# Add Docker’s official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --yes --dearmor -/usr/share/keyrings/docker-archive-keyring.gpg
 
# Set up the stable repository
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
 
# Install Docker CE
sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io
 
# Use Docker without root
sudo usermod -aG docker $DOCKER_USER
 
cs

 

4. 결과

    ˙ ubuntu에 설치된 도커(docker) 버전을 확인한다.

        - $ docker -v

 

반응형
반응형

1. 시험환경

    ˙ docker-compose 

 

2. 목적

    ˙ docker-compose 주요 명령어를 알아보자.

 

3. 적용

    ① 프로젝트 목록 관련

        - 실행중인 프로젝트 목록 확인 : $ docker-compose ls

        - 전체 프로젝트 목록 확인 : $ docker-compose ls -a

 

    ② 프로젝트 실행 및 종료하기

        - 프로젝트 실행(Foreground) : $ docker-compose up

        - 프로젝트 실행(Background) : $ docker-compose up -d

        - 프로젝트 이름 지정 : $ docker-compose  -p [project-name] up -d

        - 프로젝트 종료(컨테이너, 네트워크) : $ docker-compose down

        - 프로젝트 종료(컨테이너, 네트워크, 볼륨) : $ docker-compose down -v

 

    ③ 컨테이너 서비스 Scale Up

        - 서비스명 확장 : $ docker-compose up --scale [service-name]=3

 

    ④ 기타

        - 서비스 로그 : $ docker-compose logs

        - 이벤트 로그 : $ docker-compose events

        - 이미지 목록 : $ docker-compose images

        - 실행중인 컨테이너 목록 : $ docker-compose ps

        - 실행중인 프로세스 목록 : $ docker-compose top

 

반응형
반응형

1. 시험환경

    ˙ Github

    ˙ Ubuntu v20.04

    ˙ Docker, Docker Hub

    ˙ Spring Boot Project

 

2. 목적

    ˙ Github에서 Spring Boot Project를 다운로드(pull) 한다.

    ˙ Spring Boot Project가 정상적으로 빌드(build) 되어 결과 파일(war, jar)가 생성되는지 확인한다.

    ˙ Dockerfile을 이용하여 Spring Boot Project를 Docker Image로 빌드한다.

    ˙ Docker Image를 Docker Hub에 업로드(push) 한다.

    ˙ Docker Hub에서 다운로드(pull) 하고 컨테이너를 실행하여 동작여부를 확인한다.

 

3. 적용

    ① Spring Boot 프로젝트를 생성한다.

        - Git Clone 명령어 : git clone [repository] .

        - Repository :  https://github.com/silkWater/template-gradle-springboot.git

 

GitHub - silkWater/template-gradle-springboot

Contribute to silkWater/template-gradle-springboot development by creating an account on GitHub.

github.com

 

    ② 프로젝트 빌드(Gradle) 명령어 실행 후 BUILD SUCCESSFUL 및 결과 파일이 생성된 것을 확인한다.

        - Gradle 빌드 명령어 : $ gradle build --info

        - 빌드 파일 경로 : $ (pwd)/build/libs/[파일명].war

 

    ③ 프로젝트의 최상위 디렉토리에서 Dockerfile을 작성한다.

    ④ Dockerfile에 의하여 Spring Boot 프로젝트를 docker image로 빌드한다.

       - Gradle 빌드 명령어 : $ docker build -t [repository:tag] .

 

    ⑤ Docker Hub에 업로드(push) 권한을 얻는다.

        - $ docker login

 

    ⑥ DockerHub에 이미지를 업로드(push) 한다.

        - $ docker push [repository:tag]

 

    ⑦ Docker Hub의 지정한 Repository에 Docker Image가 업로드(push) 되었는지 확인한다.

        - Docker Hub Repository 전/후 비교

 

 

    ⑧ Local PC의 docker image를 삭제하고 Docker Hub로부터 이미지를 다운로드(pull) 받는다.

    ⑨ 도커(docker) 컨테이너(container)를 실행한다.

 

4. 결과

    ˙ HTTP 접속하여 서비스가 동작하는지 확인한다.

 

반응형
반응형

1. 시험환경

    ˙ ubuntu v20.04

    ˙ Docker

 

2. 목적

    ˙ 컨테이너(Container) 로그를 출력한다.

    ˙ 컨테이너(Container) 로그 설정하는 방법을 알아보자.

 

3. 적용

    ① 컨테이너(container)의 주요 로그(log) 명령어

        - 특정 컨테이너의 로그 출력 : $ docker logs [container]

        - 특정 컨테이너의 로그 출력(마지막 10줄) : $ docker logs --tail 10 [container]

        - 특정 컨테이너의 실시간 로그 출력 : $ docker logs -f [container]

        - 특정 컨테이너의 실시간 로그 출력 (타임 스탬프 표시) : $ docker logs -f -t [container]

 

    ② 컨테이너(container)의 로그 파일이 Host 운영체제에 저장되는 경로 (--log-driver=json-file 경우)

        - $ cat /var/lib/docker/containers/[CONTAINER]/[CONTAINER]-json.log

 

    ③ 컨테이너(container) 실행 시 로그 파일 용량 및 갯수 제한 설정

        - ex) 로그 파일 개당 10MB 용량 제한, 최대 로그 파일 갯수 10개 설정

        - $ docker run -d --log-driver=json-file --log-out max-size=10m --log-opt max-file 10 [image]

 

반응형
반응형

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

 

반응형

+ Recent posts