2020년 4월 28일

CentOS 7에 docker 및 docker-compose 설치


필수 패키지

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# docker repo를 등록한다.
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
# yum package를 업데이트
$ sudo yum makecache fast


도커 설치

1
$ sudo yum install docker-ce


도커 실행 및 서비스 등록



1
2
3
4
5
$ sudo systemctl start docker
$ sudo systemctl enable docker

$ sudo docker --version
Docker version 17.06.0-ce, build 02c1d8



docker-compose 설치(2020.4.28현재 가장최신버전)


1
2
# root로 로그인해야한다.
$ curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose


실행권한 부여 및 버전확인



$ chmod +x /usr/local/bin/docker-compose

# 설치 확인
$ docker-compose --version


도커 이미지 설치 및 실행


# 도커xml 을 경우 동일 디렉토리에서 자동설치함
$ docker-compose up -d


도커 컨테이너 정지


# 도커xml 을 경우 동일 디렉토리에서 자동설치함
$ docker ps -a
$docker stop 컨테이너ID





도커 컨테이너 삭제


# 도커xml 을 경우 동일 디렉토리에서 자동설치함
$ docker ps -a
$ docker rm 컨테이너ID



도커 모든 컨테이너 정지 및 삭제


# 모두 정지시키고 모두 삭제한다.
$ docker stop `docker ps -a -q`
$ docker rm `docker ps -a -q`



도커 이미지 삭제

# 도커xml 을 경우 동일 디렉토리에서 자동설치함
$ docker images
$ docker rmi 이미지ID


도커 이미지 삭제시 해당 컨테이너도 같이 삭제

$ docker rmi -f 이미지ID


컨테이너 전체 삭제

$ docker rm $(docker ps -a -q)

이미지 전체 삭제

$ docker rmi $(docker images -q)

이미지, 컨테이너 전체 삭제

$ docker rmi -f $(docker images -q)



테슬라메이트 재시작
docker-compose down
sudo systemctl stop docker
sudo systemctl start docker
docker-compose up -d


CentOS 7 boot 용량 부족시 용량확보

1. 사전 라이브러리

yum-utils 가 필요하므로 설치되어있지 않을 경우
yum install yum-utils  
명령을 통해 설치해준다.


2. 설정파일 수정

/etc/yum.conf  파일을 열어

installonly_limit=5
윗줄을 찾아서 아래와 같이 바꾼다.
installonly_limit=2


3. 아래명령어를 실행하면 용량확보가 된다.

package-cleanup --oldkernels --count=2



2020년 4월 19일

CentOS7 에 webalizer 설치 및 설정 그리고 GeoDB, GeoIP 같이 설치

"CentOS 7"에 webalizer 설치 방법입니다.

사전 준비

webalizer를 설치하기전에 필요한 라이브러리들은 미리 설치를 해야한다.(이미 설치되어 있으면 그냥 통과)

사전 설치 파일




  • zlib-devel
  • libpng-devel
  • libgd-devel
  • libdb-devel
  • libbz2-devel
  • GeoDB
  • GeoIP

  • zlib-devel 설치

    데이터의 송수신에 압축을 사용하는 라이브러리이다. 아래와 같이 설치하자.
    # yum install zlib-devel
    

    libpng-devel 설치

    PNG 이미지를 웹상으로 만들어주는 라이브러리이다. 
    "libpng-devel"을 "yum"으로 설치
    # yum install libpng-devel
    

    libgd-devel 설치

    사진 이미지를 동적으로 조작하기위한 라이브러리 인 "gd" 와 "gd-devel"  설치
    # yum install gd gd-devel
    

    libbz2-devel 설치

    bzip2의 암호화 알고리즘인 'bzip2-devel " 설치
    # yum install bzip2-devel
    

    libdb-devel 설치

    libdb 라이브러리 인 "libdb-devel" 설치
    # yum install libdb-devel
    

    GeoDB 설치

    webalizer의 GeoDB 데이터베이스파일을 다운로드 받습니다.
    이건 정보파일이라 "yum"을 통해 설치하는게 아니므로 아래와 같이 그낭 다운로드만 받아서 해당디렉토리로 복사하기만 하면됩니다.

    다운로드

    # wget ftp://ftp.mrunix.net/pub/webalizer/geodb/geodb-latest.tgz
    

    압축풀기 · 이동

    # tar xzfv geodb-latest.tgz
    
    압축을 풀면 "GEODB.README" "GeoDB.dat"가 나온다.
    "GEODB.README"에도 설명이 되어있지만, "/usr/share/GeoDB"에 "GeoDB.dat"을 넣으면 됩니다.
    "/usr/share/GeoDB"는 디렉토리를 만들어야 한다.
    # mkdir /usr/share/GeoDB
    # cp -p GeoDB.dat /usr/share/GeoDB
    

    GeoIP 설치

    IP에 의한 국가 정보 분석에 사용하는 "GeoIP" "GeoIP-devel"를 설치합니다.
    # yum install GeoIP GeoIP-devel
    

    webalizer 설치

    필요 라이브러리 설치가 끝났으면 이제 "webalizer"를 설치하자.
    # yum install webalizer

    초기 설정

    설정 파일 "/etc/webalizer.conf"가 생성되며, 설정은 아파치의 로그파일을 가지고 하게되며, 아파치 로그파일을 사이트별로 만들었다면, 사이트별로 webalizer.conf 파일을 만들어 줘야한다.
    # cp -p /etc/webalizer.conf /home/계정/webalizer.conf
    # vi webalizer.conf
    

    설정 파일 이름

    설정 파일 이름은 "webalizer.conf"로 했지만, 가상 호스트를 사용하거나 여러사이트를 분석하려면 분석 로그만큼 설정 파일을 작성한다.

    webalizer.conf  에서 필요한 설정에 대해서 알아보자.

    설정

    "webalizer.conf"의 설정중 가장 중요한 건 아래 2가지이다.
    LogFile분석 할 로그 파일을 지정(아파치 로그파일)
    OutputDirwebalizer가 작성한 로그 분석 파일을 저장할 경로(웹으로 접근이 가능해야함)
    LogFile 설정
    아래는  "/var/log/httpd/access_log '를 분석할 경우의 webalizer.conf 파일의 예
    LogFile /var/log/httpd/access_log
    
    OutputDir 설정
    아래는 분석한 디렉토리를  "/var/www/html/usage"에 넣을 경우이다. 만약 분석한 파일을 가상호스트의 특정디렉토리로 넣어서 확인할 수도있다. 물론 디렉토리는 미리 만들어둔다.
    예)  /home/사용자/public_html/usage
    OutputDir /var/www/html/usage

    보고서 작성

    "webalizer"는 상주하는 데몬이 아니기에 분석파일을 보고싶을때 마다 수동으로 실행을 해줘야 분석이 된다. 따라서 하단에도 나오듯이 크론에 넣어서 실행하는것을 추천한다.

    실행방법

    # /usr/bin/webalizer -c webalizer.conf
    

    결과 확인

    "webalizer"는 "OutputDir"에서 설정 한 디렉토리에 생성된다
    # cd /var/www/html/usage/    <- OutputDir에 설정된 디렉토리로 이동
    # ls -l
    총 9
    drwxr-xr-x 2 root root 4096 11 월 26 03:08.
    drwxr-xr-x 5-root root 47 11 월 23 17:16 ..
    -rw-r - r-- 1 root root 2303 11 월 26 03:08 ctry_usage_201511.png
    -rw-r - r-- 1 root root 2764 11 월 26 03:08 daily_usage_201511.png
    -rw-r - r-- 1 root root 1786 11 월 26 03:08 hourly_usage_201511.png
    -rw-r - r-- 1 root root 3663 11 월 26 03:08 index.html
    -rw-r - r-- 1 root root 2205 11 월 26 03:08 usage.png
    -rw-r - r-- 1 root root 49618 11 월 26 03:08 usage_201511.html
    -rw-r - r-- 1 root root 2870 11 월 26 03:08 webalizer.hist
    
    index.html 파일이 생성된 것을 알 수 있다.

    apache 설정

    "OutputDir"에서 설정 한 디렉토리가 웹에서 접근 가능하도록 apache 를 설정한다.

    동작 확인

    아래와 같은 화면이 보인다면 정상적으로 완료


    webalizer를 cron에 등록

    성공적으로 보고서가 작성되는 것을 확인할 수 있으면, 이번에는 'cron'에 등록하고 "webalizer"정기적으로 보고서를 만들수있도록 하자.
    이번 root 사용자의 "crontab"에 등록하는 방법과 "/etc/cron.d"에 등록하는 방법 두 가지가 있겠다.

    root의 crontab에 등록

    root 사용자의 crontab에 등록하는 방법
    root 권한으로 "crontab -e"명령을 실행하여 root 사용자의 crontab의 설정을 할수있다

    crontab 설정

    # crontab -e
    
    설정 예
    매일 0:00 분에 로그 분석을 할 경우에는 cron 설정 예입니다.
    00 0 * * * /usr/bin/webalizer -c /경로/webalizer.conf
    

    /etc/cron.d에 등록

    "/etc/cron.d"디렉토리에 설정 파일을 작성하여 등록 할 수 있습니다.

    설정 파일 생성

    이번에는 "webalizer"라는 파일을 생성합니다.
    # vi /etc/cron.d/webalizer
    

    설정 예

    아래의 예는 매일 0:00에 webalizer에서 보고서를 분석하기위한 설정 예입니다.
    #
    # cron-jobs for webalizer
    #
    
    MAILTO = root
    
    WEBALIZER = /usr/bin/webalizer
    CONF = /경로/ webalizer.conf
    
    00 0 * * * root $WEBALIZER -c $CONF

    추천 게시물

    바이낸스 지갑 설치하기(크롬 확장자)

    바이낸스 지갑은 BNB 네트워크를 사용하는 코인을 보관하는 개인 지갑입니다.  코인거래 설치하는 일입니다! 개인지갑은 브라우저의 확장프로그램을 써야합니다. 바이낸스 지갑을 설치할꺼에요.  만약에 폰이라면 Trust wallet 를 앱스토에서 깔아도 됩...