Docker 이미지 제작 for Java EE Application Server(WildFly)

이 기사에 관하여 2017.06.22


이 기사를 쓴 최초(2016.04.18)는 먼저 입문해야 한다는 심정으로 쓴 것이다.
2017.06.22 지금은'먼저 참고하지 말아야 한다'고 할 수 있습니다.
  • 컨테이너 이미지를 인코딩하지 않고 Docker file 등을 정의합니다
  • .
  • Docker for Mac의 등장으로 docker-machine을 만들 필요가 없습니다.(사례 사례지만 원가 보도의 목표를 달성하는 데는 필요없다.)
  • 목표

  • Docker의 기본 조작을 이해하고 파악하기
  • WildFly 제작용 Docker 이미지 ※ Docker file이 아닌 수동 구성, Docker file화는 직접 진행
  • 전제 조건

  • 처음부터 구축하지 않아도 Docker Hub에서 JBoss가 공개한 인상pull이 나오면 끝이라고 하지 않는다
  • 실행 환경: OS X El Capitan
  • 설치된 소프트웨어
  • Docker
  • VirtualBox-> 가상 OS(VM) 실행/VM을 Docker 호스트로 사용
  • 할 일 일람표

  • VM 구축
  • Docker 이미지 만들기
  • JDK 설치
  • WildFly 설치
  • 개념을 이해하다


    http://www.slideshare.net/TrisM/docker-41045742
    Docker Lifecycle

    구축


    VM 구축


    "dev"라는 이름으로 VirtualBox를 구축하는 VM

  • VirtualBox 외에도 많은 표준의 AWS의 EC2, MS의 애저, VMWare의 vSphere 등이 준비돼 있다.( https://github.com/docker/machine/tree/master/drivers )
  • 현재 "boot2 docker 명령"을 추천하지 않습니다.docker-machine 명령 사용
  • VM의 OS는 "boot2 docker"(24MB 정도의 가벼운 Linux 릴리스)인 것 같습니다.정말 귀찮아요.
  • $ docker-machine create --driver virtualbox dev
    Running pre-create checks...
    Creating machine...
    (dev) Copying /Users/YOURNAME/.docker/machine/cache/boot2docker.iso to /Users/YOURNAME/.docker/machine/machines/dev/boot2docker.iso...
    (dev) Creating VirtualBox VM...
    (dev) Creating SSH key...
    (dev) Starting the VM...
    (dev) Waiting for an IP...
    Waiting for machine to be running, this may take a few minutes...
    Machine is running, waiting for SSH to be available...
    Detecting operating system of created instance...
    Detecting the provisioner...
    Provisioning with boot2docker...
    Copying certs to the local machine directory...
    Copying certs to the remote machine...
    Setting Docker configuration on the remote daemon...
    Checking connection to Docker...
    Docker is up and running!
    To see how to connect Docker to this machine, run: docker-machine env dev
    

    구축된 VM 확인(docker-machine)

    $ docker-machine ls
    NAME   ACTIVE   URL          STATE     URL                         SWARM   DOCKER    ERRORS
    dev    -        virtualbox   Running   tcp://192.168.99.101:2376           v1.11.0
    

    dev 환경 변수 확인/설정

  • 환경 변수를 설정하여 docker 명령을 통해 docker-machine(VM) 조작
  • $ docker-machine env dev
    export DOCKER_TLS_VERIFY="1"
    export DOCKER_HOST="tcp://192.168.99.101:2376"
    export DOCKER_CERT_PATH="/Users/YOURNAME/.docker/machine/machines/dev"
    export DOCKER_MACHINE_NAME="dev"
    # Run this command to configure your shell:
    # eval $(docker-machine env dev)
    
    # 環境変数の設定方法は言われた通りの方法で設定
    $ eval $(docker-machine env dev)
    
    # 設定されているか確認しておく
    $ env |grep DOCKER
    DOCKER_HOST=tcp://192.168.99.101:2376
    DOCKER_MACHINE_NAME=dev
    DOCKER_TLS_VERIFY=1
    DOCKER_CERT_PATH=/Users/YOURNAME/.docker/machine/machines/dev
    

    Hub OS에 대한 Docker 이미지 가져오기/시작

    # 最新版のDockerイメージ取得。
    # バージョンを指定する場合は docker pull centos:VERSION
    $ docker pull centos
    Using default tag: latest
    latest: Pulling from library/centos
    a3ed95caeb02: Pull complete
    5989106db7fb: Pull complete
    Digest: sha256:1b9adf413b3ab95ce430c2039954bb0db0c8e2672c48182f2c5b3d30373d5b71
    Status: Downloaded newer image for centos:latest
    
    # 持ってるイメージ一覧表示
    $ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    centos              latest              sha256:778a5        2 weeks ago         196.7 MB
    
    # イメージから "jee" というホスト名,コンテナ名で 起動(バックグラウンド)で起動
    ## -h     : ホスト名指定オプション
    ## -d     : コンテナをバックグラウンド起動オプション
    ## --name : コンテナ名指定オプション
    $ docker run -h jee -itd --name jee centos /bin/bash
    
    # 起動したコンテナプロセス表示
    $ docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    450a788cbf03        centos              "/bin/bash"         7 minutes ago       Up 3 minutes                            jee
    
    # 起動したコンテナに接続  ※ docker attach だと、exitした時にdockerプロセスが落ちる
    docker exec -it jee /bin/bash
    

    yum가 시작하는 용기에 적당히 설치하는 데 필요한 물건

    # jee コンテナ に JDK をインストール
    [root@jee]# yum install java-1.8.0-openjdk-devel.x86_64
    # jee コンテナ に WildFly をインストール
    [root@jee]# wget -p /tmp/ http://download.jboss.org/wildfly/10.0.0.Final/wildfly-10.0.0.Final.tar.gz
    [root@jee]# tar zxvf /tmp/wildfly-10.0.0.Final.tar.gz -C /opt
    [root@jee]# useradd -s /sbin/nologin wildfly
    # その他、やっておきたいことがあれば。
    

    컨테이너 이미지 저장

    $ docker commit jee jee/wildfly:1.0
    

    빌드를 시작하는 컨테이너

  • docker run
  • 8080과 9990의 포트 전방향을 설정하고 Docker를 통해 WildFly를 시작하는 과정
  • docker 프로세스를 마친 후 그림을 폐기하려면 --rm
  • 을 선택하십시오
    docker run --rm -p 8080:8080 -p 9990:9990 -it jee/wildfly:1.0 /opt/wildfly/bin/standalone.sh -c standalone-full.xml -b 0.0.0.0 -bmanagement 0.0.0.0
    

    VM(docker-machine)의 포트 전달 설정

  • VirtualBox에서 docker-machine의 808099990에 대한 포트 전송 설정
  • https://www.google.co.jp/search?&q=virtualbox+ 포트 전달
  • 좋은 웹페이지 즐겨찾기