카테고리 Archives: Windows

Docker 를 이용한 데이터베이스 사용법

Web / Was 만 도커를 이용해 배포하는 이유는 Mysql, MariaDB 등의 공식 도커가 너무 잘되어 있어서 이다.

그래서 이용하는 법만 알면 되는데.  ‘ㅅ’a

공식 소개 페이지에 잘 나와 있긴 하지만 docker 사전 지식 없이 사용을 하기엔 설명을 건너 뛴 부분이 많다.

 

여기서는 MariaDB 공식 도커이미지를 가지고 간단히 DB를 띄우는 방법에 대한 부분만 설명 한다.

사용할 버전은 10.11 버전이다. 10.11을 사용하는 이유는 LTS 이기 때문에 지금 당장은 가장 오랜 업데이트가 지원될 예정이기 때문이다. (https://endoflife.date/mariadb)

 

사용할 도커 이미지: mariadb – Official Image | Docker Hub

 

1. 이미지 pull 및 run을 한다.

 

2. mysql을 이용 한다. = _ =..

 

3. 그냥 글을 마무리 하기 심심하니.. 데이터베이스 생성, 유져 생성 쿼리…

 


 

PS. docker run 에 대한 옵션에 대한 설명.

--restart unless-stopped : stop 명령을 내린게 아니라면 (재부팅 또는 도커를 스탑 한경우..) 자동으로 시작 하는 옵션.

-v /etc/mysql/mariadb.conf.d/:/etc/mysql/mariadb.conf.d/ : my.cnf 수정이 필요한 DB 튜닝의 경우 /etc/mysql/mariadb.conf.d/custom.cnf 파일을 만들고 내용을 넣고 컨테이너를 재시작 하면 적용 된다.

-v /var/lib/mysql:/var/lib/mysql : mysql 의 데이터 폴더를 마운트 한다.

docker를 이용한 데이터베이스 사용은 업데이트를 편하게 하기 위함이기 때문에 container 를 다시 run 하면 안의 내용을 모두 유실 하게 된다. 때문에 이와 같이 주요 폴더는 호스트OS 와 연결 하여 사용 하면 된다.

--env TZ=Asia/Seoul 만들려는 인스턴스의 timezone을 Seoul(+9) 으로 설정 한다.

--env MARIADB_ROOT_PASSWORD=루트패스워드 run 할때 루트패스워드를 지정해서 생성 한다.(미지정시 랜덤 생성)

 


 

연결할 WEB / WAS 구현은 아래 글을 확인합니다 ‘ㅅ’a

OCI arm 인스턴스에서 docker로 web, was 사용

 

익스플로러에서만 한국 사이트 접속이 안될때

예전에 kisa(한국 인터넷진흥원) 에서 mod_security 룰셋을 배포 한적이 있다.

웹에서의 명령어 실행방지를 위한 룰셋중.

#SecFilterSelective HTTP_USER_AGENT “Download” “msg:’Robot attack'” 와 같은 룰셋이 존재 한다.

 

문제는 최근 윈도우 7,8 에서 GWX 윈도우 업데이트의 기능의 의해 windows 10 다운로드가 완료 되면

익스플로러의 user-agent 에 GWX:DOWNLOADED; 라는 정보가 추가가 된다.

 

때문에 이 코드에 의해 한국 사이트의 경우 접속이 안되는 경우가 발생한다.

보통 windows 10을 다운 받아놓고선 업데이트를 안하는 경우기 때문에 많이 발생하는것은 아니다.

 

해결방법

  1.  빨랑 windows 10 으로 업데이트를 한다.
  2.  gwx 를 삭제한다. (제어판 > 프로그램 삭제에서 KB3035583 를 삭제한다.)
  3.  mod_security 문제 룰셋 off (주석 처리.)

 

2번 방법으로 임시적으로 gwx 를 삭제한 경우 KB3035583 의 재설치를 막기 위해

windows update 에서 KB3035583의 업데이트 알림도 꺼줘야 되겠다. ‘ㅅ’a

그리고 %HOMEPATH%\AppData\Local\GWX 폴더에 완료된 다운로드가 있으니

삭제한다.(숨김파일-폴더삭제추천)

kisa 룰셋을 가져다 쓴 모든 사이트에서 발생할 수 있는데.. naver pay 결제도 그러더라 -.-..

 

ps. windows 10 다운로드가 완료 되지 않은 상태의 user-agent 는 GWX:RESERVED; 이며 이때는 문제가 되지 않더라.