[초보] docker 를 이용해 그누보드5 설치해 보기. 정보
[초보] docker 를 이용해 그누보드5 설치해 보기.첨부파일
본문
### 도커 생초보의 그누보드5 도커화 시도 2020년 3월 19 일 강풍이 부는 현재 내 PC는 우분투 리눅스 19.10 설치해서 사용중이고, 기본으로 설치된 docker.io 패키지로 도커를 실행해서 기본환경으로 끙끙거리며 배우고 있는 중입니다. 그누보드5 버전을 도커에 설치하는걸 어거지로 겨우 해 봤습니다. 아주 낮은 수준으로 연습해본건데, 혹시라도 비슷한 초보분들 있을거 같아 간단하게 기록해 둡니다. 일단, 도커의 이념(?)에 맞게 마이크로서비스 형태로 아파치 웹서버와 mysqlDB 서버를 분리해서 docker-compose 로 컨테이너를 실행하고 컨테이너 종료시 db 정보나 웹업로드 정보가 사라지므로, 볼륨기능으로 호스트 디렉토리에 마운트해서 사용하도록 했습니다. 1. 일단 내 일반 계정 nonots 계정에 mydocker 라는 디렉토리를 만들고 거기서 도커 작업을 했습니다. 그 아래 mysqldata ( mysql컨테이너의 /var/lib/mysql 를 연결), gnudata (그누보드 웹소스 전체 복사), 이렇게 2 개 폴더를 만들고 퍼미션을 707 로 바꿉니다. 그리고, gnudata 안에 data 를 만들어서 이것 역시 707 로 바꿉니다. /home/nonots/mydocker/mysqldata/ => mysql 정보 저장(초기에 빈 디렉토리) /home/nonots/mydocker/gnudata/ => 그누보드5 소스 전체 저장 /home/nonots/mydocker/gnudata/data => 그누보드 /data/ 폴더(퍼미션 707) 2. 웹서버는 아파치2.4 에 php가 모듈로 지원되고, php-mysqli php-gd 같은 php 모듈도 같이 하기위해서, hub.docker.com 에 있는 php:7.4-apache 라는 이미지를 불러와서 간단하게 다시 빌드를 했습니다. nonots@nonots-desktop:~/mydocker$ cat Dockerfile ROM php:7.4-apache MAINTAINER nonots RUN apt update && apt -y install libfreetype6-dev libjpeg62-turbo-dev zlib1g-dev libpng-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) gd mysqli 위와 같이 3줄짜리 Dockerfile 를 간단하게 만듭니다. 그런후 아래와 같이 nonots/gnudocker:v1 이라는 이미지 이름으로 빌드를 합니다. nonots@nonots-desktop:~/mydocker$ docker build . -t nonots/gnudocker:v1 빌드가 성공하면 nonots@nonots-desktop:~/mydocker$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE nonots/gnudocker v1 78566041ec11 13 seconds ago 435MB 와 같이 이미지 목록에 보입니다. 3. 그리고, 이렇게 생성한 웹서버 이미지와 db 이미지를 각각 컨테이너를 만들고 연결하기 위해서 docker-compose 사용했습니다. 우선 mydocker 폴더에 docker-compose.yaml 이라는 파일을 아래와 같이 생성합니다. >>> docker-compose.yaml 시작 version: "3" services: # 이 항목 밑에 실행하려는 컨테이너 들을 정의 mymysqldb: # 서비스 명 - mysql DB서버 image: mysql:latest container_name: mymysql ports: - "3306:3306" # 접근 포트 설정 (컨테이너 외부:컨테이너 내부) environment: # -e 옵션 MYSQL_ROOT_PASSWORD: "root2349" # MYSQL root패스워드 설정 옵션 MYSQL_USER: "nonots" # 그누보드 사용자 MYSQL_DATABASE: "nonots_db" # 그누보드 사용 DB MYSQL_PASSWORD: "kwon2349" #그누보드 비번 command: # 명령어 실행 - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci volumes: - ./mysqldata:/var/lib/mysql gnuboard: #apache php 웹서버 depends_on: - mymysqldb image: nonots/gnudocker:v1 container_name: mygnu ports: - "888:80" # 웹브라우저에서 888 포트사용(변경가능). restart: always volumes: - ./gnudata:/var/www/html # -v 옵션 (다렉토리 마운트 설정) links: - mymysqldb:mymysqldb # 그누보드 db 연결 호스트명을 mymysqldb 로 연결. >>> docker-compose.yaml 끝 이 파일을 설명하면, 아파치웹서버 컨테이너는 mygnu 라는 이름으로, 그리고 mysql 서버는 mymysql 이라는 이름으로 컨테이너를 생성합니다. mysql 서버는 원격 도커허브에 등록된 mysql:latest 최신버전 이미지를 다운받아서 만들고, 아파치 웹서버는 조금전 직접 빌드해 만든 nonots/gnudocker:v1 이라는 이미지로 만듭니다. mysql 루트 비번과 그누보드에서 사용할 db,user,비번 정보(nonots, nonots_db, kwon2349)를 정해 주고, 웹서버에서 mysql db 서버를 원격 연결하는건 mymysqldb 라는 이름으로 링크(links)하게 합니다. 저장위치 볼륨은 컨테이너 안에서 외부 호스트로 연결해서 각각 호스트의 mysqldata, gnudata 로 연결합니다. 그리고 웹서버 포트는 80번포트를 외부로 888 로 연결했는데, 이부분은 원하는대로 수정하면 됩니다. 이렇게 yaml 파일을 만든 후. nonots@nonots-desktop:~/mydocker$ docker-compose up -d Creating mymysql ... done Creating mygnu ... done 와 같이 docke-compose 로 실행하면 아래와 같이 컨테이너가 각각 mygnu mymysql 라는 이름을 실행 됩니다. nonots@nonots-desktop:~/mydocker$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES aeb187cb13df nonots/gnudocker:v1 "docker-php-entrypoi…" 5 seconds ago Up 3 seconds 0.0.0.0:888->80/tcp mygnu 2fc09a55ad89 mysql:latest "docker-entrypoint.s…" 5 seconds ago Up 4 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mymysql 4. 이제 웹브라우저에서 http://localhost:888 포트로 접속하면 그누보드 설치 화면이 뜹니다. 물론 mysql 클라이언트 프로그램이 있다면, 3306 포트로 접속해서 db 관리도 가능합니다. 그누보드 설치시 Mysql 정보입력에서 Host 항목을 기본 localhost 가 아니라 원격 컨테이너인 mymysqldb 로 입력해야 합니다. 나머지는 일반적인 방법으로 설치해서 사용하면 됩니다. 그리고 설치 해서 정상적으로 사용하다가 nonots@nonots-desktop:~/mydocker$ docker container stop mygnu mymysql nonots@nonots-desktop:~/mydocker$ docker container rm mygnu mymysql 로 컨테이너를 중지하고 컨테이너를 삭제하면 컨테이너 내부 정보는 다 사라지지만 nonots@nonots-desktop:~/mydocker$ docker-compose up -d 와 같이 다시 컨테이너를 실행하면 이전 설치된 그누보드 정보, DB 데이터가 그대로 남아 있음을 알수 있습니다. 즉, 만약 그누보드 정보를 그대로 다른 곳으로 복사해서 사용하려면, /home/nonots/mydocker 디렉토리를 그대로 압축해서 다른 서버에서 docker-compose 로 실행하면 됩니다. 5. 이상 허접한 초보의 도커를 이용한 그누보드 설치 연습이었습니다. 위 낮은 수준의 내용으로 인해 발생할지도 모를 치명적인 재산상 신체상 손해에 대한 책임은 없음을 밝힙니다.
추천
3
3
댓글 4개
스크랩 해요~
최근 도커 좀 보고 있엇느네
감사합니다.
최근 도커 좀 보고 있엇느네
감사합니다.
도커활용
감사합니다!
아주~ 아주좋은 정보 감사합니다