July Tech Festa 2017 の講演資料です。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。
![Linux コンテナの内部を知って ワンランク上のコンテナ遣いを目指そう / JTF2017](https://cdn-ak-scissors.b.st-hatena.com/image/square/264410ac6d651a0347c3347fa6e1ac4b61f775c2/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F4e40e52615d640e686f84b7f824717ab%2Fslide_0.jpg%3F8468350)
以下の3コマンド、これだけでプロジェクトに必要な開発環境ができあがる。そんな環境を Docker で作ってみませんか? $ git clone https://github.com/dataich/sample-docker.git $ cd sample-docker $ docker-compose up こんにちは、Typetalkチームのエンジニアの吉田です! 新しいエンジニアがチームに入ってきてまずやることは、DBやWebサーバなどの開発環境を構築することでしょう(9月に新しい人がチームに入ります、やったね!)。 Typetalkチームでも以前はREADMEに記述された手順に従って、開発者が個別に構築していました。その際READMEに書かれたミドルウェアのバージョンが古かったり、実は手順そのものが変わっていたりすることもあり、ハマることもありました。また、複数のプロジェクトで違う
いまお仕事の関係で、機械学習の教科書的な書籍を読んだりオンライン講座を受講したりしながらサンプルやチュートリアルを動かして勉強しています。 機械学習を勉強するときは、Pythonの環境を構築し、JupyterNotebookを使って、実際に手と頭を動かしながら行うのが効率的です。が、アルゴリズムの理論そのものの理解がすでにしんどい上、過学習対策のための正則化、汎化性能の評価、クロスバリデーション、不均衡データや少ないデータはどうすればいいか、などなどいちいち難しいことを数多く勉強しなければなりません。 その上、、、、機械学習での学習は、1度やれば終わり!ではなく、パラメータチューニングしたり、データを増やしたり加工したりしながら、繰り返しなんども行う必要があります。一見ビジネス寄り&アカデミックな雰囲気を醸し出していますが、実際のところは、非常に泥臭い作業のオンパレードです。 が、、、、、
Rust言語による新しいDockerコンテナランタイム実装「Railcar」、オラクルがオープンソースで公開。なぜRustでコンテナランタイムを実装したのか? Rust言語で実装したコンテナランタイムの「Railcar」を、オラクルがオープンソースとしてGitHubで公開しました。 Railcarはコンテナランタイム標準であるOCI(Open Container Initiative)に準拠してているため、Dockerのバックエンドとしても利用可能と説明されています。 なぜDockerをRust言語で実装するのか Railcarの公開を明らかにしたOracle Developers Blogに投稿された記事「Building a Container Runtime in Rust」によると、Rust言語でコンテナランタイムを実装した理由が次のように説明されています。少し長いのですが、引用し
ローカルPCに個人開発環境を建てたいけど、母艦は汚したくないものです。 そうすると、だいたいの場合vagrant(virtualbox)かdockerかの2択になると思います。 この使い分けにいつも迷うのでどうするべきかの指針を考えてみました。 お断り: 以下は個人の見解であって、所属先の見解ではありません。 カーネルに依存する操作を行いたい場合 dockerの場合、いじれるカーネルパラメータが限られています。 特定バージョンのカーネルの環境を用意する必要がある場合や、カーネルパラメータに特殊な設定が必要な環境では仮想マシンの方である必要があります。 内部で生成されたデータの保全を行いたい場合 dockerの場合、ふとした操作(docker killやdocker build、docker rm(i)など)でデータコンテナの中身が消えてしまうことがあります。 仮想マシンのイメージであれば、
この話の続き systemd-nspawnに移行した 以下詳細とか雑記 ファイルの差分管理がそもそも不要docker commitもdocker diffも使わないし、要らない 要らないだけならまだしも、aufs、overlayfs周りでトラブル可能性がありむしろ邪魔 イメージの差分管理はファイルシステムの層でやるのが素直でコンテナ管理にくっついてるのに違和感がある Dockerじゃないと今までのエコシステムが云々言ってるやつこういう事言うやつは本質をまるで理解してないやつ Docker特有の機能をフルに使ってる奴ならまだしもコンテナ動かすだけなら何使っても変わらねーよw Docker Hub からイメージダウンロードしてtarで解凍すりゃ良いだけじゃねーか composeだって容易にコンバート可能だし、composeで何が起きるかわからない状態で本番運用とか口にしないで欲しい 実際sys
そもそも便利なのかちゃんと考えてる? 「日々Dockerfileをメンテして開発環境がこんなに楽になります!」 「Dockerなので本番とも開発者同士でも同じになります!」 馬鹿じゃねーのかw? Dockerfileメンテなんて手順書メンテとかシェルスクリプトメンテしてんのと大して変わらねーよw そのDockerfileから作ったものが本番と同一だなんて保証はねーって気づけボケが 本番と同じものを作りたかったら本番からコンテナ作れよ なんでビルド始めちゃうの?無駄じゃん馬鹿じゃん それと「同じDockerfileから作ったものだから環境差異はありません」なんて寝言まだ言ってるの? yumもaptもリポジトリがセキュリティアップデートやらで変化する以上 いつも同じ結果になるわけじゃねーだろが、(バージョンロックする方法はあるけどめんどいだろ) 本番でもコンテナを使ってますってやつら以外無理し
以前に私が書いた「 Dockerの本番運用:失敗の歴史) 」という記事は、非常に多くの反響を呼びました。 その後、長い議論を交わして、何百件ものフィードバックや何千件ものコメントを読み、さまざまな人々や主要事業者とも顔を合わせました。Dockerでの試みが増えるほど、その失敗談は増えていきます。そうした現状を、今回アップデートしておきたいと思います。 この記事では、最近の交流や記事から得た教訓を紹介しますが、その前に簡単におさらいをして軽く背景を説明しましょう。 免責事項:対象読者 たくさんのコメントから、世の中には10種類の人々が存在するということが明らかになりました。 1) アマチュア 実際のユーザがいない試用版のプロジェクトやサイドプロジェクトを実行している人々です。Ubuntuのベータ版を使用するのが当然だと考えており、「安定したもの」は古いものと見なすようなタイプです。 注釈:書
Docker、「LinuxKit」を発表。コンテナランタイムのためだけにゼロから開発されたセキュアなLinux Subsystem。DockerCon 2017 Dockerは、コンテナの実行に必要な機能に特化したLinux Subsystem「LinuxKit」を、テキサス州オースチンで開幕した同社のイベント「DockerCon 2017」で発表しました。 Linux Subsystemとは、例えばWindows 10のbash機能がWindows 10内部に用意されたLinux Subsystemで実現されているように、システムの一部として組み込まれて動作し、Linuxの機能を提供するコンポーネントを指す一般名称です。 つまりLinuxKitとは、コンテナプラットフォームに組み込まれてLinuxの機能を提供するコンポーネントということになります。 Linux Foundationなどと
Dockerコンテナに特化した「RancherOS」正式版リリース。Linuxカーネル上でDockerを実行、システムもユーザーもすべてをコンテナ空間に RancherOSは単にコンテナの実行に関係ないライブラリなどを省略してLinux OSをスリムダウンするだけではなく、Linux OSの構造そのものをコンテナ専用にしようというアプローチを採用しています。 その最大の特徴が「Everything in RancherOS is a container managed by Docker.」(RancherOSのすべてはDockerが制御するコンテナ内にある)というものです。 下記のRancherOSの仕組みを示した図にあるように、Linuxカーネル上でDockerを実行し、ntpd、syslog、consoleといったシステム関連のプロセスはこの「System Docker」が制御するコ
概要 2017年1月18日にリリースされた Docker v1.13 以降(今日現在の v17.03.0-ce )は、 docker コマンドラインの命令体系が再編成されました。本記事では変更に至った背景と、新旧コマンド体系の比較情報を整理します。 新しいサブコマンド体系の導入と背景 新しいコマンド体系の導入に至ったのは、docker のトップレベル・コマンド群が 40 を越える状況(当時)となったためです。コマンドには頻繁に使うものもあれば、使わないものもあり、再編成されることになりました。 v1.13から論理オブジェクト単位にコマンドが再編成されました。これは、「何」(コンテナやイメージ、ネットワーク)を、「どうするか」(作成、一覧、起動、停止)で扱います。そのため、従来よりもコマンドの利用目的が分かりやすくなります。たとえば、コンテナを管理する docker container サブ
Dockerコンテナがフェイルオーバーしたとき、ストレージも自動的に切り替えてくれる。オープンソースの「REX-Ray」をDell EMCが無償公開中[PR] Dockerコンテナを利用することで、手もとのノートPCで開発したアプリケーションを簡単にオンプレミスのテスト環境やクラウド上の本番環境などへ持ち運んで展開、実行できるようになります。 Dockerコンテナは軽量で簡単にアプリケーションの実行環境を生成、移動、削除できる点が大きな特長になっています。しかし一方でそのアプリケーションで処理されるデータは、簡単に消えてもらっては困ります。 そこでDockerにはデータを永続化するための仕組みがいくつか用意されています。 Dockerのデータを永続化する4つの方法 Dockerコンテナでデータを永続化するには、すなわちアプリケーションが生成するデータを失わないためには、何らかの方法でデータ
Google、DockerコンテナのビルドをREST APIなどで自動化できる「Container Builder」リリース。1日あたり120分のビルド時間まで無料 ソフトウェアの開発サイクルを迅速にまわすうえで、開発したコードをビルドし、テスト環境でテストをし、本番環境へ展開するといった操作を自動的に行う、いわゆるCI/CD(継続的インテグレーション/継続的デリバリ)の仕組みを構築することは欠かせないものになろうとしています。 こうしたCI/CD環境を構築するにあたって便利なのがDockerコンテナです。アプリケーションをDockerコンテナにパッケージすることで、軽量でポータブルなDockerコンテナの特長を活かして開発者が開発に利用しているノートPCからテスト環境、本番環境まで簡単に移動できるためです。 GoogleはこうしたDockerコンテナのビルドをRESTful APIを用い
何がしたいのか 最近はDockerを導入したサービスがガンガン出てきている一方、現場でのDocker導入に足踏みをしているところもあると思います。 今回はDockerを導入するために、「コンテナを利用するとこんなに便利!!」という主張を展開することで、現場でのDocker導入の推進をしたいと思います! まあ、スライドモードを使いたかったんですよ TL;DR コンテナと仮想環境は別物だよ コンテナでの運用するといいことがたくさんあるよ どんな環境でも同じように動かせる デプロイ・ロールバックが簡単 システムが簡単に把握できる あいのり環境もいける コンテナとは コンテナ ≒ VM ?? Docker導入しようって言うとこんな話を聞くことがある コンテナってVMみたいなもんでしょ? VMの上にまたVM作るの? AMI使ってるから、わざわざコンテナにする必要がない コンテナ != VM VMとコ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く