Linux&Ubuntu/Docker&kuber

docker-compose 로 apm 기본 설치

Vittorio_Lee 2023. 9. 14. 16:06
728x90
반응형
SMALL

본글은 ubuntu 22.04 버전에서 설치 했습니다. 
Docker 설치 

# apt -y update
# apt -y upgrade
# apt -y install apt-transport-https ca-certificates curl gnupg lsb-release

2. Docker 공식 GPG 설치

# curl -fsSL https://download.docker.com/linux/ubuntu/gpg |gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

3. Docker 공식 저장소 추가

# echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" |tee /etc/apt/sources.list.d/docker.list > /dev/null

4. Docker 설치 및 확인

# apt -y update
# apt -y install docker-ce docker-ce-cli containerd.io
# docker --version

5. Compose 설치 및 확인

# apt -y install docker-compose-plugin
# docker compose version
# docker-compose --version

APM 설치
1. 설치 및 확인
특정 버전을 명시하지 않으면 최신 버전의 이미지가 다운로드 됩니다.

사용 예) docker pull {이미지}:{버전}

# docker pull httpd:2.4.54
# docker pull php:8.2.0-fpm
# docker pull mysql:8.0.31
# docker images

REPOSITORY   TAG         IMAGE ID       CREATED        SIZE
httpd        2.4.54      463980270363   8 months ago   145MB
php          8.2.0-fpm   8ee3a55f199a   8 months ago   450MB
mysql        8.0.31      7484689f290f   9 months ago   538MB
# docker search mysql    // 다운로드 가능한 이미지 출력
# docker pull mysql         // mysql:8.0.31 와 같이 특정 버전을 지정하지 않으면 최신 버전이 설치됩니다. (mysql 또는 mysql:latest)
                         
아래 URL 에서 제공하는 버전을 확인 할 수 있습니다.
https://hub.docker.com/_/mysql
https://hub.docker.com/_/php
https://hub.docker.com/_/httpd

2. 실행 
APM 환경 파일을 컨테이너와 연결하여 생성합니다.

# vi docker-compose.yml

version: '3.9'

services:
    httpd:
        image: httpd:2.4.54
        container_name: httpd
        restart: unless-stopped # 서버 부팅시 컨테이너 가동
        ports:
            - "80:80"
        volumes:
            - /home/vittorio/httpd/html/:/usr/local/apache2/htdocs

    mysql:
        image: mysql:8.0.31
        container_name: mysql
        restart: unless-stopped
        tty: true
        ports:
            - "3306:3306"
        environment:
            MYSQL_HOST: localhost
            MYSQL_ROOT_PASSWORD: 12345678 # 초기 mysql root 비밀번호
            SERVICE_TAGS: dev
            SERVICE_NAME: mysql
            TZ: Asia/Seoul

    php:
        image: php:8.2.0-fpm
        container_name: php
        restart: unless-stopped
        ports:
            - "9000:9000"
        volumes:
            - /home/vittorio/httpd/html/:/var/www/html/  # php 소스 코드를 사용하기 위해 필수 설정
        command:
            - /bin/sh
            - -c
            - |
              echo "security.limit_extensions = .html .htm .php" >> /usr/local/etc/php-fpm.d/www.conf  # 특정 확장>자만 php 소스 코드 사용
              php-fpm

파일 맨 위에 compose version 은 docker 버전에 맞추어 사용해야 합니다. 아래 URL 에서 확인이 가능합니다.
https://docs.docker.com/compose/compose-file/compose-versioning/#compatibility-matrix

 실행

# docker compose up -d    << 시작

root@96c8e4395d04:/usr/local/apache2# cd htdocs
root@96c8e4395d04:/usr/local/apache2/htdocs# cat index.html 
test


현재 컨테이너 구동 상태입니다.

# docker compose ps
NAME                IMAGE               COMMAND                  SERVICE             CREATED             STATUS              PORTS
httpd               h
mysql               mysql:8.0.31        "docker-entrypoint.s…"   mysql               4 months ago        Up About an hour    0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp
php                 php:8.2.0-fpm       "docker-php-entrypoi…"   php                 4 months ago        Up 30 minutes        0.0.0.0:9000->9000/tcp, :::9000->9000/tcp

 

- Docker 삭제 명령어 -

1. Docker 관련 패키지를 제거
# apt purge docker-ce docker-ce-cli containerd.io

2. 호스트의 이미지, 컨테이너, 볼륨 또는 사용자 지정 구성파일 제거 (모든 이미지, 컨테이너 및 볼륨 수동 삭제)
# rm -rf /var/lib/docker
# rm -rf /var/lib/containerd
# docker compose down    // 컨테이너 중지 및 삭제


기타 
# docker compose images       // 올려진 서비스 (컨테이너) 가 사용중인 이미지 리스트 출력. (모든 이미지 출력 : docker images)
# docker compose ps               // 올려진 서비스 (컨테이너) 출력
# docker compose stop php     // 올려진 서비스 (컨테이너) 선택 중지
# docker compose start php     // 올려진 서비스 (컨테이너) 선택 시작
# docker rm -v php                    // 올려진 서비스 (컨테이너) 삭제
# docker compose up -d php    // 하나의 서비스 (컨테이너) 만 구동

 

728x90
반응형
LIST