Docker로 MarkLogic 환경을 구축해 보았습니다.
소개
시험에서 Docker로 MarkLogic 환경을 빌드했으므로 그 단계를 설명합니다.
동작 확인 환경
OS
도커 버전
docker-compose version
Windows 10 Home
18.09.9
1.24.1
※Windows 10 Home은 Docker for Windows를 설치할 수 없기 때문에 Docker ToolBox를 설치하여 시도했습니다.
전제 조건
본 기사는 이하가 인스톨·등록되어 있는 것이 전제가 됩니다
OS
도커 버전
docker-compose version
Windows 10 Home
18.09.9
1.24.1
※Windows 10 Home은 Docker for Windows를 설치할 수 없기 때문에 Docker ToolBox를 설치하여 시도했습니다.
전제 조건
본 기사는 이하가 인스톨·등록되어 있는 것이 전제가 됩니다
여기 에서 등록할 수 있습니다
디렉토리 구성
디렉토리 구성은 다음과 같이 시도했습니다.
.
├ docker ← Dockerファイルやrpmファイル等の格納ディレクトリ
│ │
│ └ marklogic ← Marklogic用のコンテナで必要なDockerファイルやrpmファイル等格納ディレクトリ
│ │
│ └ 10-0-2 ← Marklogic10.0.2の資材格納ディレクトリ
│ │
│ └ Dockerfile ← Dockerファイル
│ │
│ └ rpm ← rpmファイル格納ディレクトリ
│ │ │
│ │ └ MarkLogic-10.0-2.x86_64.rpm ← Marklogicのrpmファイル
│ │
│ └ conf ← 設定ファイル格納ディレクトリ
│ │
│ └ supervisord.conf ← supervisord用設定ファイル
│
├ docker-compose.yml ← Composeファイル
MarkLogic rpm 파일은 다음 사이트에서 가져옵니다. 다운로드하려면 MarkLogic 커뮤니티에 등록해야 합니다.
Red Hat Enterprise Linux/CentOS, Version7의 rpm 파일을 다운로드하십시오.
다양한 파일 설정
Dockerfile 및 Compose 파일, supervisord.conf 파일을 수정합니다.
Docker 파일
Docker 파일은 다음과 같이 수정합니다.
컨테이너를 시작할 때 서비스를 자동으로 시작하고 싶기 때문에 supervisord도 설치하고 있습니다.
DockerfileFROM centos:centos7
RUN yum -y update && yum clean all
RUN yum -y install glibc.i686 gdb.x86_64 redhat-lsb.x86_64 && yum clean all
RUN yum -y install initscripts && yum clean all
RUN yum install -y epel-release
RUN yum install -y supervisor && yum clean all
COPY ./conf/supervisord.conf /etc/
ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/MarkLogic/mlcmd/bin
COPY ./rpm/MarkLogic-10.0-2.x86_64.rpm /tmp/MarkLogic.rpm
RUN yum -y install /tmp/MarkLogic.rpm && rm /tmp/MarkLogic.rpm
EXPOSE 7997 7998 7999 8000 8001 8002
ENTRYPOINT ["/usr/bin/supervisord"]
Compose 파일
Compose 파일은 다음과 같이 수정
docker-compose.ymlversion: '3'
services:
ml10-node-1:
build: ./docker/marklogic/10-0-2
tty: true
expose:
- "7997"
- "7998"
- "7999"
ports:
- "8000:8000"
- "8001:8001"
- "8002:8002"
- "8010:8010"
hostname: "ml10-host-1.local"
container_name: "ml0-node-1.local"
supervisord.conf 파일
컨테이너가 시작될 때 시작할 서비스를 설정합니다.
이번에는 MarkLogic을 시작합니다.
supervisord.conf[supervisord]
nodaemon=true
[program:MarkLogic]
command=/sbin/service MarkLogic start
컨테이너 생성 및 시작
Compose 파일이 있는 디렉토리에서 다음 명령 실행
실행 완료까지 조금 시간이 걸립니다.
$ docker-compose up -d
실행이 완료되면 다음에 액세스
http://localhost:8001
※localhost 부분은 환경에 따라 다릅니다. 예를 들어 Docker Toolbox를 사용하는 경우 'docker-machine ip'를 실행하여 IP 주소를 확인하고 localhost 부분을 바꿉니다.
안전하게 시작할 수있었습니다.
클러스터 구성을 원한다면
클러스터 구성으로 환경을 빌드하려면 Compose 파일을 수정하면됩니다.
다음은 3대의 클러스터 구성으로 하고 싶은 경우
docker-compse.ymlversion: '3'
services:
ml10-node-1:
build: ./docker/marklogic/10-0-2
tty: true
expose:
- "7997"
- "7998"
- "7999"
ports:
- "8000:8000"
- "8001:8001"
- "8002:8002"
- "8010:8010"
hostname: "ml10-host-1.local"
container_name: "ml0-node-1.local"
ml10-node-2:
build: ./docker/marklogic/10-0-2
tty: true
expose:
- "7997"
- "7998"
- "7999"
ports:
- "18000:8000"
- "18001:8001"
- "18002:8002"
- "18010:8010"
hostname: "ml10-host-2.local"
container_name: "ml0-node-2.local"
ml10-node-3:
build: ./docker/marklogic/10-0-2
tty: true
expose:
- "7997"
- "7998"
- "7999"
ports:
- "28000:8000"
- "28001:8001"
- "28002:8002"
- "28010:8010"
hostname: "ml10-host-3.local"
container_name: "ml0-node-3.local"
컨테이너 작성 및 기동을 해, 각각 설정해 클러스터 구성으로 하는 것에 성공
클러스터 구성 절차는 여기에서 생략합니다.
참고
Reference
이 문제에 관하여(Docker로 MarkLogic 환경을 구축해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/FKSM/items/dcc1a65634fb54e2b4c5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
.
├ docker ← Dockerファイルやrpmファイル等の格納ディレクトリ
│ │
│ └ marklogic ← Marklogic用のコンテナで必要なDockerファイルやrpmファイル等格納ディレクトリ
│ │
│ └ 10-0-2 ← Marklogic10.0.2の資材格納ディレクトリ
│ │
│ └ Dockerfile ← Dockerファイル
│ │
│ └ rpm ← rpmファイル格納ディレクトリ
│ │ │
│ │ └ MarkLogic-10.0-2.x86_64.rpm ← Marklogicのrpmファイル
│ │
│ └ conf ← 設定ファイル格納ディレクトリ
│ │
│ └ supervisord.conf ← supervisord用設定ファイル
│
├ docker-compose.yml ← Composeファイル
Dockerfile 및 Compose 파일, supervisord.conf 파일을 수정합니다.
Docker 파일
Docker 파일은 다음과 같이 수정합니다.
컨테이너를 시작할 때 서비스를 자동으로 시작하고 싶기 때문에 supervisord도 설치하고 있습니다.
Dockerfile
FROM centos:centos7
RUN yum -y update && yum clean all
RUN yum -y install glibc.i686 gdb.x86_64 redhat-lsb.x86_64 && yum clean all
RUN yum -y install initscripts && yum clean all
RUN yum install -y epel-release
RUN yum install -y supervisor && yum clean all
COPY ./conf/supervisord.conf /etc/
ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/MarkLogic/mlcmd/bin
COPY ./rpm/MarkLogic-10.0-2.x86_64.rpm /tmp/MarkLogic.rpm
RUN yum -y install /tmp/MarkLogic.rpm && rm /tmp/MarkLogic.rpm
EXPOSE 7997 7998 7999 8000 8001 8002
ENTRYPOINT ["/usr/bin/supervisord"]
Compose 파일
Compose 파일은 다음과 같이 수정
docker-compose.yml
version: '3'
services:
ml10-node-1:
build: ./docker/marklogic/10-0-2
tty: true
expose:
- "7997"
- "7998"
- "7999"
ports:
- "8000:8000"
- "8001:8001"
- "8002:8002"
- "8010:8010"
hostname: "ml10-host-1.local"
container_name: "ml0-node-1.local"
supervisord.conf 파일
컨테이너가 시작될 때 시작할 서비스를 설정합니다.
이번에는 MarkLogic을 시작합니다.
supervisord.conf
[supervisord]
nodaemon=true
[program:MarkLogic]
command=/sbin/service MarkLogic start
컨테이너 생성 및 시작
Compose 파일이 있는 디렉토리에서 다음 명령 실행
실행 완료까지 조금 시간이 걸립니다.
$ docker-compose up -d
실행이 완료되면 다음에 액세스
http://localhost:8001
※localhost 부분은 환경에 따라 다릅니다. 예를 들어 Docker Toolbox를 사용하는 경우 'docker-machine ip'를 실행하여 IP 주소를 확인하고 localhost 부분을 바꿉니다.
안전하게 시작할 수있었습니다.
클러스터 구성을 원한다면
클러스터 구성으로 환경을 빌드하려면 Compose 파일을 수정하면됩니다.
다음은 3대의 클러스터 구성으로 하고 싶은 경우
docker-compse.ymlversion: '3'
services:
ml10-node-1:
build: ./docker/marklogic/10-0-2
tty: true
expose:
- "7997"
- "7998"
- "7999"
ports:
- "8000:8000"
- "8001:8001"
- "8002:8002"
- "8010:8010"
hostname: "ml10-host-1.local"
container_name: "ml0-node-1.local"
ml10-node-2:
build: ./docker/marklogic/10-0-2
tty: true
expose:
- "7997"
- "7998"
- "7999"
ports:
- "18000:8000"
- "18001:8001"
- "18002:8002"
- "18010:8010"
hostname: "ml10-host-2.local"
container_name: "ml0-node-2.local"
ml10-node-3:
build: ./docker/marklogic/10-0-2
tty: true
expose:
- "7997"
- "7998"
- "7999"
ports:
- "28000:8000"
- "28001:8001"
- "28002:8002"
- "28010:8010"
hostname: "ml10-host-3.local"
container_name: "ml0-node-3.local"
컨테이너 작성 및 기동을 해, 각각 설정해 클러스터 구성으로 하는 것에 성공
클러스터 구성 절차는 여기에서 생략합니다.
참고
Reference
이 문제에 관하여(Docker로 MarkLogic 환경을 구축해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/FKSM/items/dcc1a65634fb54e2b4c5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ docker-compose up -d
http://localhost:8001
클러스터 구성으로 환경을 빌드하려면 Compose 파일을 수정하면됩니다.
다음은 3대의 클러스터 구성으로 하고 싶은 경우
docker-compse.yml
version: '3'
services:
ml10-node-1:
build: ./docker/marklogic/10-0-2
tty: true
expose:
- "7997"
- "7998"
- "7999"
ports:
- "8000:8000"
- "8001:8001"
- "8002:8002"
- "8010:8010"
hostname: "ml10-host-1.local"
container_name: "ml0-node-1.local"
ml10-node-2:
build: ./docker/marklogic/10-0-2
tty: true
expose:
- "7997"
- "7998"
- "7999"
ports:
- "18000:8000"
- "18001:8001"
- "18002:8002"
- "18010:8010"
hostname: "ml10-host-2.local"
container_name: "ml0-node-2.local"
ml10-node-3:
build: ./docker/marklogic/10-0-2
tty: true
expose:
- "7997"
- "7998"
- "7999"
ports:
- "28000:8000"
- "28001:8001"
- "28002:8002"
- "28010:8010"
hostname: "ml10-host-3.local"
container_name: "ml0-node-3.local"
컨테이너 작성 및 기동을 해, 각각 설정해 클러스터 구성으로 하는 것에 성공
클러스터 구성 절차는 여기에서 생략합니다.
참고
Reference
이 문제에 관하여(Docker로 MarkLogic 환경을 구축해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/FKSM/items/dcc1a65634fb54e2b4c5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Docker로 MarkLogic 환경을 구축해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/FKSM/items/dcc1a65634fb54e2b4c5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)