실천 Docker

9921 단어 Docker
===

의 목적


Docker를 통해 응용 환경을 구축하기 전의 단계를 정리합니다.

전제 조건


소프트웨어
릴리즈
시험을 준비하다
OS X
10.8.5
boot2docker  
1.0.0
rbdock   
0.2.0
Docker 시작

프로비저닝

  • 설정
  • 응용 프로그램 만들기
  • Docker file 만들기
  • 형상을 형상화하다.
  • 이미지 실행
  • 테스트
  • 걷어치우다
  • Docker Hub로 밀어넣기
  • 디테일


    설정


    VM과 데이터를 공유할 수 있습니다.


    여기.에서 ISO 이미지를 다운로드합니다.
    $ boot2docker stop
    $ mv ~/.boot2docker/boot2docker.iso ~/.boot2docker/boot2docker.iso.backup
    $ mv ~/Downloads/boot2docker-v1.0.1-virtualbox-guest-additions-v4.3.12.iso ~/.boot2docker/boot2docker.iso
    $ VBoxManage sharedfolder add boot2docker-vm -name home -hostpath /Users
    $ boot2docker up
    
    설치rbdock
    $ gem install rbdock
    

    응용 프로그램 만들기

    $ hazel sample_sinatra
          create  sample_sinatra/config/initializers
          create  sample_sinatra/lib
          create  sample_sinatra/spec
          create  sample_sinatra/lib/.gitkeep
          create  sample_sinatra/public/stylesheets
          create  sample_sinatra/public/stylesheets/main.css
          create  sample_sinatra/public/javascripts
          create  sample_sinatra/public/javascripts/.gitkeep
          create  sample_sinatra/public/images
          create  sample_sinatra/public/images/.gitkeep
          create  sample_sinatra/public/images/hazel_icon.png
          create  sample_sinatra/public/images/hazel_small.png
          create  sample_sinatra/public/favicon.ico
          create  sample_sinatra/views
          create  sample_sinatra/views/layout.erb
          create  sample_sinatra/views/welcome.erb
          create  sample_sinatra/sample_sinatra.rb
          create  sample_sinatra/spec/sample_sinatra_spec.rb
          create  sample_sinatra/spec/spec_helper.rb
          create  sample_sinatra/config.ru
          create  sample_sinatra/Gemfile
          create  sample_sinatra/Rakefile
          create  sample_sinatra/README.md
    $ cd sampel_sinatra
    $ rackup config.ru
    

    Docker file 만들기

    $ cd sample_sinatra
    $ rbdock 2.1.0 --rvm --app .
    
    생성된 Docker file이 그대로 있으므로 수정합니다.
    43번째 줄을 삭제하고 44번째 줄에 다음 내용을 추가합니다
    RUN bash -l -c 'rvm use 2.1.0; bundle install'
    

    형상을 형상화하다.

    $ docker build -t="k2works/sample_sinatra" .
    

    이미지 실행

    $ docker run -d -p 9292:9292 --name=test k2works/sample_sinatra 'rvm use ruby-2.1.0;rackup config.ru'
    

    테스트

    $ docker ps
    CONTAINER ID        IMAGE                           COMMAND                CREATED             STATUS              PORTS                    NAMES
    20f024e69a75        k2works/sample_sinatra:latest   bash -l -c 'rvm use    20 minutes ago      Up 4 seconds        0.0.0.0:9292->9292/tcp   test
    $ curl -i $(boot2docker ip 2>/dev/null):9292
    HTTP/1.1 200 OK
    Content-Type: text/html;charset=utf-8
    Content-Length: 1813
    X-XSS-Protection: 1; mode=block
    X-Content-Type-Options: nosniff
    X-Frame-Options: SAMEORIGIN
    Connection: keep-alive
    Server: thin 1.6.2 codename Doc Brown
    
    <!DOCTYPE html>
    ・・・
    

    걷어치우다

    $ docker stop test
    test
    $ docker rm test
    test
    

    Docker Hub로 밀어넣기


    docker push

    $ docker login
    $ docker push k2works/sample_sinatra
    

    Docker Hub과 협력



    Automated Build 선택

    GiitHub 선택


    Docker file이 있는 저장소 선택

    Doctorfile Location 위치 지정(Sample sinatra)
    공개 유형을 선택한 후 Create Repository를 수행합니다.


    위의 Docker file 위치가 잘못되어 구문이 실패했습니다.  

    Docterfile Locationsinatra 수정 후 Starta Build를 실행하여 구축이 정상적으로 종료됩니다.


    다른 창고에서 Dcokerfile을 만듭니다.


    사용sinatra에bootstrap 설치된 창고입니다.
    $ mkdir sample_gitrepo
    $ cd sample_gitrepo/
    $ rbdock 2.0.0-p247 --rvm --app https://github.com/k2works/sinatra_bootstrap
    $ docker build -t='k2works/sampel_gitrepo' .
    $ docker run -d -p 9292:9292 --name=test_sample_gitrepo k2works/sample_gitrepo 'rvm use 2.0.0-p247;rackup config.ru'
    

    Ruby on Rails 프로젝트의 Docker file을 만듭니다.

    $ rails new sample_rails_app
    $ cd sample_rails_app
    $ rdbock 2.1.0 --rvm --app .
    $ docker build -t='k2works/sample_rails_app' .
    $ docker run -d -p 3000:3000 --name=test_rails k2works/sample_rails_app 'rvm use ruby-2.1.0;rails server'
    
    참고: Docker file을 편집해야 합니다.

    경품도 Docker Hub과 함께 합니다.



    기릿허브에서 사은품을 추가 추천한 뒤 위에 내용을 추가했다.

    인용하다

  • Dockerizing a Node.js web application
  • boot2docker Vagrant Box
  • boot2docker together with VirtualBox Guest Additions
  • Rubdock이라는 Ruby/Rails/Sinatra용 Docker file을 생성한gem
  • Vagrant+Docker를 사용하여 Sinatra 이동
  • Dockerfile for installing Ruby 2.0 and RVM
  • 좋은 웹페이지 즐겨찾기