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

쿠버네티스 개발자 측면

쿠버네티스 도입해야 하는 이유 - 기획자/운영자/개발자 측면

/
클라우드의 중심이 인프라에서 플랫폼으로 이동하면서 컨테이너 기반의 아키텍처가 주목받고 있는데, 이 가운데서도 쿠버네티스(Kubernetes)가 대세로 자리 잡았 습니다. IT 기획자, 개발자 그리고 운영자 측면에서 쿠버네티스가 주면 장점을 살펴 보겠습니다.
JBoss EAP

JBoss EAP 교육 자료 공개

/
JBoss EAP 를 기반으로 웹시스템을 개발하고 관리하려는 개발자나 운영자들에게 필요한 기초 지식들을 학습하는 실습 중심의 교육 과정입니다. JBoss 상에서 개발하기 위한 개발 환경과 기본 적인 사용 방법들에 대한 교육 자료를 다운로드 하세요.
컨테이너 장점

컨테이너 를 꼭 사용해야 하는 이유는 ?

/
컨테이너는 OS를 가상화하여 여러 개의 컨테이너를 OS 커널에서 직접 실행합니다. 컨테이너는 기존의 가상화 기술보다 훨씬 가볍게 동작하며, OS 커널을 공유하고, 시작 시간이나 종료 시간이 빠르고 , 메모리를 훨씬 적게 차지합니다. 컨테이너의 장점은 다음과 같습니다.
가상화 와 컨테이너 비교

가상화 기술과 컨테이너 기술 비교

/
가상화 기술은 하이퍼바이저를 통해 하드웨어를 에뮬레이션하여 가상 이미지 마다 게스트 운영 체제로를 사용합니다.컨테이너 는 애플리케이션 수준으로 구성되며 커널 하나를 공유하는 여러 OS 가상화합니다.컨테이너 는 OS가 포함되지 않아 크기가 작고, 고속으로 시작과 정지 합니다.
컨테이너 가상머신 물리서버

물리서버 , 가상화 , 컨테이너 기술 진화의 역사

/
컨테이너 기술이 등장하기 전까지 IT 역사를 되돌아 보겠습니다.가상화기술이 출현하기 전에는 하나의 물리적 서버에서 다양한 애플리케이션을 올려 사용하는 시대였습니다.물리적 서버에 직접 OS를 설치하고 서비스 (애플리케이션)을 실행하는 것입니다.
클라우드 네이티브 애플리케이션 차이점

클라우드 네이티브 애플리케이션 과 기존 애플리케이션 비교

/
급변하는 비즈니스 환경에서 성공하려면 기업들은 애플리케이션 설계, 구축 그리고 운영하는 방식을 바꿔야 합니다. 클라우드 네이티브 애플리케이션 개발은 클라우드 컴퓨팅 기술을 기반으로 애플리케이션을 구축, 실행 및 개선하는 접근 방식입니다.
컨테이너 혁신

컨테이너 역사 - chroot 부터 Kubernetes 까지

/
컨테이너 기술의 시작과 현재까지 발전해온 역사를 살펴봅니다.컨테이너의 역사는 1979 년에 chroot가 탄생 한 것으로부터 시작합니다. chroot는 이름 그대로 “root (/) 디렉토리 (기준이되는 디렉토리) 변경 (change)” 하는 것 입니다.
클라우드 네이티브

클라우드 네이티브 ( Cloud native ) 소개

/
급변하는 비즈니스 환경에서 성공하려면 기업들은 애플리케이션 설계, 구축 그리고 운영하는 방식을 바꿔야 합니다. 클라우드 네이티브 애플리케이션 개발은 클라우드 컴퓨팅 기술을 기반으로 애플리케이션을 구축, 실행 및 개선하는 접근 방식입니다.
컨테이너

컨테이너 기술 소개 - 하이브리드 클라우드 핵심

/
최근 주목을 받고있는 차세대 가상화 기술이 “ 컨테이너 ”입니다. 컨테이너 기반의 오픈소스 플랫폼들은 하이브리드 클라우드 구현과 DevOps 그리고 마이크로서비스 아키텍처를 구현하기 위한 필수적인 기술로 자리잡고 있습니다.
개발자와 컨테이너

개발자와 컨테이너 기술

/
개발자와 컨테이너 기술이 주는 주요한 장점은 아래와 같습니다. 신속한 개발환경 구축, 작은 시스템 자원으로 개발 환경 구축, 모든 개발자팀에게 동일한 환경 제공, 개발/테스트/스테이징/운영 환경을 동일하게 구성 , DevOps 에, 마이크로서비스 아키텍