JBoss EAP & Wildfly

CentOS에서 Docker 설치 후 Wildfly 실행하기

CentOS 에서 Docker를 설치하고 wildfly 를 Dockerhub 에서 다운로드 받아 실행해보는 Tutorial 내용입니다.
주로 mastertheboss.com 에 포스트된 “Getting started with Docker and WildFly” (http://mastertheboss.com/soa-cloud/docker/getting-started-with-docker-and-wildfly) 의 내용을 정리한 것입니다.
JBoss & Wildfly On Docker

1. 동작환경

본 내용은 다음과 같은 환경을 전제로 작성되었습니다.
  • Docker Client 1.2 
  • Docker Server 1.2
  • Go 1.3.3
  • CentOS release 6.5 (Final)
$ sudo docker version
Client version: 1.2.0
Client API version: 1.14
Go version (client): go1.3.3
Git commit (client): fa7b24f/1.2.0
OS/Arch (client): linux/amd64
Server version: 1.2.0
Server API version: 1.14
Go version (server): go1.3.3
Git commit (server): fa7b24f/1.2.0

2. EPEL 설치

EPEL (Extra Packages for Enterprise Linux) 은 Fedora Project 에서 제공되는 Community 기반의 저장소로 각종 패키지의 최신 버전을 제공하며, 레드햇 계열은 상호간에 호환성에 거의 문제가 없습니다.
$ sudo rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

전체를 업데이트 하기 때문에 네트워크에 따라 수 십분 소요될 수 있습니다.

$ sudo yum update -y

3. Docker 설치

EPEL 레파지토리로 부터 docker-io 패키지 설치합니다.

$ sudo yum -y install docker-io

Docker 를 실행합니다.

$ sudo service docker start

4. Docker 이미지 가져오기

JBoss Wildfly docker 이미지를 dockerhub으로 부터 가져옵니다.
$ sudo docker pull jboss/wildfly

Docker 이미지를 확인합니다.

$ sudo docker images
[sudo] password for admin: 
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
jboss/wildfly       latest              365390553f92        3 weeks ago         948.7 MB

5. Docker 에서 Wildfly 실행하기

Wildfly 를 실행합니다.
[admin@localhost ~]$ sudo docker run -it jboss/wildfly
=========================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: /opt/jboss/wildfly

  JAVA: /usr/lib/jvm/java/bin/java

  JAVA_OPTS:  -server -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true

=========================================================================

12:56:55,922 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.3.Final
12:56:56,644 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.2.Final
12:56:56,869 INFO  [org.jboss.as] (MSC service thread 1-2) JBAS015899: WildFly 8.1.0.Final "Kenny" starting
12:56:58,926 INFO  [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
12:56:58,967 INFO  [org.xnio] (MSC service thread 1-2) XNIO version 3.2.2.Final
12:56:59,021 INFO  [org.xnio.nio] (MSC service thread 1-2) XNIO NIO Implementation Version 3.2.2.Final
12:56:59,134 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 32) JBAS010280: Activating Infinispan subsystem.
12:56:59,154 INFO  [org.wildfly.extension.io] (ServerService Thread Pool -- 31) WFLYIO001: Worker 'default' has auto-configured to 2 core threads with 16 task threads based on your 1 available processors
...... 중략

실행 중인 Docker 프로세스를 확인합니다.

$ sudo docker ps
[sudo] password for admin: 
CONTAINER ID        IMAGE                  COMMAND                CREATED             STATUS              PORTS                NAMES
eed9124142f6        jboss/wildfly:latest   "/opt/jboss/wildfly/   38 seconds ago      Up 37 seconds       9990/tcp, 8080/tcp   stoic_wright    

Wildfly Docker 이미지의 IP 주소를 확인합니다.

$ sudo docker inspect -f '{{.NetworkSettings.IPAddress}}' eed9124142f6
172.17.0.2

확인된 IP 주소로 접속합니다.

References & Related Links

Related Posts

레드햇이 개발한 CRI-O 는 Kubernetes 용 Open Container Initiative (OCI) 컨테이너 런타임이다.

CRI-O : Kubernetes 를 위한 표준 컨테이너 런타임

/
여러분은 KUBERNETES에서 어떤 컨테이너 런타임을 사용하고 계신가요?레드햇이 개발한 CRI-O 는 Kubernetes 용 Open Container Initiative (OCI) 컨테이너 런타임이다. 특히 Kubernetes와의 통합을 염두에 두고 설계하였습니다.
Kubernetes Containerd

containerd - Kubernetes 표준 컨테이너 런타임

/
컨테이너 세계는 컨테이너 엔진에서 부터 레지스트리, 오케스트레이션 ,보안,네트워크,스토리지, 애플리케이션 관리까지 다양한 기술이 뒤섞여 혼란스러운 상황입니다. 2016 년 1 월에 정식 출범 한 Cloud Native Computing Foundation (이하 CNCF)는 혼돈스러운 컨테이너와 관련된 다양한 기술적인 문제들을 오픈소스로 해결하는 하는 것을 목표로하고 있습니다.
CNCF Graduated Project

컨테이너 핵심 오픈소스 - Kubernetes , Prometheus , Envoy 외

/
CNCF 에서 Container 관련 오픈소스 제품 중 성숙도를 인정 받은 프로젝트는 다음과 같습니다. Kubernetes , Prometheus , Envoy , CoreDNS , containerd , Fluentd 입니다.
Cloud Native Computing Foundation - CNCF Projects

컨테이너 기반의 클라우드 네이티브 오픈소스 생태계 - CNCF ( Cloud Native Computing Foundation )

/
컨테이너 세계는 컨테이너 엔진에서 부터 레지스트리, 오케스트레이션 ,보안,네트워크,스토리지, 애플리케이션 관리까지 다양한 기술이 뒤섞여 혼란스러운 상황입니다. 2016 년 1 월에 정식 출범 한 Cloud Native Computing Foundation (이하 CNCF)는 혼돈스러운 컨테이너와 관련된 다양한 기술적인 문제들을 오픈소스로 해결하는 하는 것을 목표로하고 있습니다.
컨테이너 표준

컨테이너 기술에 대한 표준화 - OCI ( OPEN CONTAINER INITIATIVE )

/
컨테이너 기술에 대한 표준화 단체인 Open Container Initiative는 2015 년 6 월에 레드햇, Docker, CoreOS, Google, IBM Red Hat, Amazon Web Services, VMware, HP, EMC, Pivotal, 마이크로소프트, The Linux Foundation 등이 주요 멤버로 설립 된 단체입니다.
OpenShift

OpenShift 소개자료 , 브로셔 , 데이터시트 다운로드

/
OpenShift (오픈시프트) 에 대한 제품소개 자료 , 브로셔 그리고 다양한 데이터시트를 다운로드 받으세요. OpenShift (오픈시프트) 는 기업에 Docker(도커)와 Kubernetes(쿠버네티스)를 제공하는 컨테이너 애플리케이션 플랫폼입니다. 레드햇은 도커와 쿠버네티스 프로젝트를 선도하고 있으며, 최신 레드햇 컨테이너 애플리케이션 플랫폼을 통해 쿠버네티스 1.4(Kubernetes 1.4) 및 도커 컨테이너 런타임의 기업용 버전을 제공합니다.
Immutable infrastructure ( 변경 불가능한 인프라) with Docker

클라우드에서는 서버를 한번 쓰고 버린다고? - Immutable infrastructure & Docker

/
이 기사에서는 "변경 불가능한 인프라"가 무엇인지, 이전의 운영 방법인 "변경 가능한 인프라"와 개념적 차이점 그리고 이점 등에 대해 살펴봅니다.전자는 서버 컴포넌트들을 배포한 후에도 변경되도록 설계된 반면, 후자의 경우에는 배포된 서버 환경을 변경하지 않고 궁극적으로는 기존 것은 버리고 새 것으로 대체하는 것입니다.두 가지의 인프라 관리 방법은 서버를 어떻게 처리 ( 생성, 유지, 업데이트, 제거)해야 하는지에 대한 접근 방법에서 다른 점이 있습니다. 도커 ( Docker ) 는
Immutable Infrastructure with Docker

Immutable infrastructure ( 변경 불가능한 인프라) with Docker ( 도커 )

/
Docker ( 도커 ) 는 Immutable Infrastructure ( 변경 불가능한 인프라) 를 가능하게 하는 가장 중요한 기술요소 입니다.Immutable Infrastructure 의 배경 기술로는 오토스케일링(Auto Scaling)과 블루-그린 배포 방식(Blue-Green Deployment) 가 있습니다. 또한 클라우드와 컨테이이너 기술, 가상화 기술들이 발전하면서 서비스 운영 환경을 이미지로 구성하여 배포하는 방법이 가능하게 되면서 "변경 불가능한 인프라" 도입이 확산되기 시작하였습니다.
OpenShift (오픈시프트) 기반 온나라 클라우드

중앙부처 온나라 시스템 , 공개소프트웨어로 오픈 시프트 ( OpenShift 로 전환 )

/
행정안전부의 정부지식 공유활용기반 사업 (온-나라 클라우드, 문서2.0) 은 레드햇 오픈시프트 기반으로 진행 중입니다. 온-나라 시스템은 행정기관의 업무에 대한 문서 작성·검토·결재·등록·공유·공개 등 문서처리의 모든 과정을 기록·관리하는 전자결재시스템 입니다.
Docker / OpenShift 모니터링

도커 모니터링 / 오픈시프트 모니터링의 문제점과 해결방법

/
OpenShift (오픈시프트) 는 기업에 Docker와 Kubernetes를 제공하는 컨테이너 애플리케이션 플랫폼입니다.오픈시프트는 사용 중인 애플리케이션 아키텍처와 관계없이 거의 모든 인프라(퍼블릭 또는 프라이빗)에서 쉽고 빠르게 구축, 개발 및 배포할 수 있습니다. 온프레미스, 퍼블릭 클라우드, 호스티드 중 어떤 IT 환경이든 경쟁업체보다 빨리 우수한 아이디어를 제품화 할 수 있습니다. 간단히 말하자면 신속한 애플리케이션 개발을 위해 도커 컨테이너와 DevOps (데브옵스)도구를 사용하여 Kubernetes (쿠베르네테스)의 지원 배포 입니다.