タグ

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

  • DockerHub公式の言語Stack

    DockerHub公式の言語Stack DockerHub Official Repos: Announcing Language Stacks | Docker Blog DockerHubには公式のレポジトリがある.そこにはUbuntuやCentos,MySQLやPostgres,MongoといったDockerイメージがコミュニティーベースで,つまりより汎用的に使える形で開発され集められており,ベースイメージとして簡単に使えるようになっている. 今までは,OSのディストリビューションや,Webサーバ,DBなどがメインだったが,公式として各種プログラミング言語のベースイメージも公開された.現状(2014年9月時点)では,c/c++(gcc),clojure,golang,hylang,java,node,perlPHPpythonrailsrubyがある. 特徴 この公式の言語s

  • Go言語のコードレビュー

    SoundCloudが2年半ほどGo言語を利用したプロダクトを番で運用した知見をGopherConで発表していた(“Go: Best Practices for Production Environments”).その中で“CodeReviewCommentsというGoogleでのGo言語のコードレビューにおいてよくあるコメントをまとめたサイトが紹介されていた. 最近Go言語を書くようになり,使えそうなのでざっと抄訳してみた.“リーダブルコード”的な視点も含まれており,Go以外の言語でも使えそう. gofmtでコードの整形をすること コメントは文章で書くこと.godocがいい感じに抜き出してくれる.対象となる関数(変数)名で初めて,ピリオドで終わること // A Request represents a request to run a command. type Request str

    y-teraoka
    y-teraoka 2014/05/27
  • DotenvではなくDirenvを使う

    DotenvではなくDirenvを使う Dotenvは,.envファイルから環境変数を読み込むためのツール.他人には共有したくないパスワードやキーなどを.envに環境変数として記述しておき,実行時にそれを読み込むといった使い方をする.例えば自分は,vagrantからDigitalOceanを使う際に,CLIENT_IDやAPI_KEYを.envに記述してVagrantfileでそれを読み込むという使い方をしていた. ただ,Dotenvは汎用性が低い.Dotenvを有効にするには,プログラム内から明示的にDotenv.loadを呼ぶ必要がある,もしくは,dotenvでプログラムを起動する必要がある.例えば,test-kitchenのdigitaloceanドライバーを使う際には,vagrantの場合と同様にCLIENT_IDやAPI_KEYが必要になる.しかし,test-kitchenでユー

    y-teraoka
    y-teraoka 2014/05/14
  • DockerのHost networking機能

    DOCKER 0.11 IS THE RELEASE CANDIDATE FOR 1.0 1.0のRCである0.11はいくつかの新機能が追加された.例えば,SELinuxのサポートや,Host networking機能,Link機能でのホスト名,Docker deamonへのpingなど. この中でもHost networking機能がなかなか面白いので,実際に手を動かして検証してみた.事前知識として“Dockerのネットワークの基礎”も書きました.ネットワークに関して不安があるひとが先にみると,Host Networing機能の利点/欠点もわかりやすいと思います. TL;DR Host networking機能を使うと,異なるホスト間のコンテナの連携がちょっぴりやりやすくなる.SerfやConsulのようなサービスディスカバリーツールとの相性も良さそう. まだ出たばかりの機能で実際に使っ

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

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

  • Docker+Serf+HAproxy (+Supervisor)

    Docker+Serf+HAproxy (+Supervisor) SerfでDockerコンテナのクラスタを形成する SerfでHAProxyの更新 on Vagrant でやったことを融合した.つまり,HAProxy(ロードバランサ)コンテナとWebサーバコンテナを立てて,Serfでそれらのクラスタを形成する.そしてWebサーバコンテナの増減に応じてHAProxyコンテナの設定を書き換えるということをやってみた. 基的には,上でやったことをDockerのコンテナに移行するだけだが,Dockerは1コンテナで1プロセスが普通であるため,複数プロセス(サービス)をどう扱うかが問題になる. Dockerで複数プロセスを扱うときには,Supervisorという選択肢がある.この方法は,公式で紹介されていたり,Foot Fightの“Docker in Practice”で言及されてたり,Ce

    y-teraoka
    y-teraoka 2014/04/13
  • 1