タグ

ブックマーク / deeeet.com (8)

  • Dockerのネットワークの基礎

    今までいろいろ触ってきて,Dockerネットワーク周りに関しては何となくは理解していたが,人に説明できるほど理解してなかったのでまとめておく.基は,Advanced networking - Docker Documentationがベースになっている. 仮想ブリッジの仕組み Dockerのネットワークは,仮想ブリッジdocker0を通じて管理され,他のネットワークとは隔離された環境で動作する. Dockerデーモンを起動すると, 仮想ブリッジdocker0の作成 ホストの既存ルートからの空きのIPアドレス空間を検索 空きから特定の範囲のIPアドレス空間を取得 取得したIPアドレス空間をdocker0に割り当て が行われる. コンテナを起動すると,コンテナには以下が割り当てられる. docker0に紐づいたveth(Virtual Ethernet)インターフェース docker0に割り

  • Vagrant1.6のDocker provider

    Vagrant1.6のDocker provider Feature Preview: Docker-Based Development Environments Vagrant 1.6からDocker providerがサポートされた.つまり,VagrantでVMだけでなくコンテナも管理できるようになった. この機能はネイティブでDockerをサポートしてないOSXでも使え,この場合は裏側でProxy VM(boot2docker box)が勝手に立ち上がって,その上でコンテナが立ち上がる.つまり,以下のようになる. OSX -> (Proxy VM) -> Docker Container OSXの場合,これは今までboot2dockerを使ってやってきたのと変わらない.ただ,Docker providerを使うと,boot2dockerの立ち上げまで面倒を見てくれる. 何が嬉しいのか

  • Dockerとは何か?どこで使うべきか?

    この記事はDockerに関する実験的な記事や,Buildpackを使ってHeroku AppをDocker Containerとして使えるようにする“building”の開発などで知られるCenturyLink Labsの “What is Docker and When To Use It”の翻訳です. Dockerとは何か?Dockerをどこで使うべきか?についてよく見かける記事とは違った視点から説明されています. 翻訳は許可をとった上で行っています. Dockerとは何でないか Dockerとは何かを説明する前に,Dockerは何でないかについて述べる.Dockerの否定形は何か?Dockerの制限は何か?Dockerが得意でないことは何か? DockerLXCのようなLinux Containerではない DockerLXCだけのラッパーではない(理論的には仮想マシンも管理でき

  • Packerを使ってChef/Puppet/AnsibleでDockerのイメージをつくる

    Packerを使ってChef/Puppet/AnsibleでDockerのイメージをつくる Packerは,Vagrantの作者であるMitchell Hashimoto氏によって開発が進められているVirtualBoxやVMWare,Amazon EC2などの仮想マシンのテンプレートの作成を行うツール.VagrantのVirtualBox用のBoxを作るveeweeに置き換わるツールとして知られている.最近のアップデートDockerのイメージのビルドをサポートした. TL;DR Packerを使えばDockerのイメージをDockerfileを使わずビルドすることができる つまり,Dockerfileの特有な記述を使わず,今まで慣れ親しんできたChefやPuppet,Ansibleのようなプロビジョニングツールを使ってDockerのイメージをビルドできる. 参考 Dockerイメージの

  • Docker Share

    Docker Share Vagrant Shareとngrok Vagrant Share素晴らしい.外部ネットワークのマシンから,ローカルに立てた仮想マシンへのアクセスを実現している. TL;DR ngrokを使えば,Dockerコンテナに対してVagrant Shareと同様のことができる.つまり,Dockerコンテナを外部ネットワークからアクセス可能にすることができる. 以下をやってみた. Apacheコンテナへのアクセス Railsコンテナへのアクセス 準備 OSX上で行った.dockerはboot2dockerで動かす. $ brew install boot2docker 事前にboot2dockerにport forwardingの設定をしておく. $ VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8080,t

  • gitshでgitのタイプ数を減らす

    gitshでgitのタイプ数を減らす gitはサブコマンドやオプションが多い.だからshellのaliasやらgitのaliasで頑張ってコマンドのタイプ数を減らす.Thoughbotの@georgebrockさんのgitshを使えばもっとコマンドのタイプ数を減らすことができる. 例えば以下はよく打つコマンド.gitって打ち過ぎ. $ git status $ git add -u $ git commit -m "Commit message" $ git push gitshを使うと専用のモードへのアタッチが始まり,gitを打たずサブコマンドだけを打てばよくなる. $ gitsh gitsh@ status gitsh@ add -u gitsh@ commit -m "Commit message" gitsh@ push gitsh@ :exit gitのaliasも引き継がれるの

  • Vagrant + DockerでSinatraを動かす

    Vagrant + DockerでSinatraを動かす tcnksm/docker-sinatra 簡単なsinatraアプリケーションをDocker上で動かしてみた. まずはsinatraアプリケーション.特別なことはなく,Procfileとconfig.ruを準備して,foremanで動かす.外部からのアクセスを有効にするため,ListenAddressを指定しておく. #Procfile web: bundle exec rackup config.ru -p 4567 -s thin -o 0.0.0.0 次に,Vagrantの設定.VagrantはDockerのprovisioningが有効な1.4を利用する.vagrantのインストールは以下のBrewfileを準備して,brew bundleする. tap phinze/homebrew-cask install brew-

  • 公式のDocker client for OSXがリリース

    公式のDocker client for OSXがリリース 2014.01.02にOSXdocker clientがリリースされた.DockerGoで書かれているので,OSX上で自分でビルドして使ってる人もいたが,今回は公式のバイナリリリース.さらに,Homebrewのhomebrew-binaryレポジトリにFormulaも追加され,すぐに使えるようになった. clientなので,VMもしくはリモートに立てたDocker deamonに対してローカルからコマンドが叩けるようになったということ.とりあえず,ローカルにVM立てて触ってみた. tcnksm/docker-osx まず,dokcer clientのインストール. $ brew update $ brew tap homebrew/binary $ brew install docker Vagrantfileは以下のようにす

  • 1