総関西サイバーセキュリティLT大会(第38回)の LT 資料です。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。
章立て はじめに Docker・Container型仮想化とは Docker一強時代終焉の兆し Container技術関連史 様々なContainer Runtime おわりに 1. はじめに Containerを使うならDocker、という常識が崩れつつある。軽量な仮想環境であるContainerは、開発からリリース後もすでに欠かせないツールであるため、エンジニアは避けて通れない。Container実行ツール(Container Runtime)として挙げられるのがほぼDocker一択であり、それで十分と思われていたのだが、Dockerの脆弱性や消費リソースなどの問題、Kubernetes(K8s)の登場による影響、containerdやcri-o等の他のContainer Runtimeの登場により状況が劇的に変化している。本記事では、これからContainerを利用したい人や再度情報
LinuxコンテナをFreeBSDで動かす「Linux containers on FreeBSD」、containerd 1.7.0で正式サポート コンテナランタイムのもっとも代表的な実装としてCloud Native Computing Foundation(CNCF)が開発を主導するのが「containerd」です。 その最新版として3月11日付でリリースされた「containerd 1.7.0」に「Linux containers on FreeBSD」が正式な機能として組み込まれました。 Linux containers on FreeBSDは、LinuxコンテナをFreeBSD上で実行する際に、FreeBSDのファイルシステムの代わりLinuxファイルシステムにマウントする機能だと説明されています。 FreeBSD上でLinuxコンテナを実行可能に FreeBSDには以前からシ
開発環境をMacからWindowsに切り替えたことについて、実際どうですかと聞かれることが何度かあったので、そのときも話した現在の所感みたいなものを書き残しておく。 結論すると、移行後の環境をかなり気に入っている。 1996年のカリフォルニア州 2~3日は主にメタキー周りのキーバインドや見てくれの違いに戸惑い、幾らか離脱症状が出たものの、1週間もすれば流石に慣れてきて、最終的に、個人の用途ではMacを全く触らなくなった。開発環境がMacを前提としている仕事先があったり、貸与されたPCで作業する仕事先があったりするので、完全に触っていない訳ではない。 よくよく比較してみると、あると嬉しい便利機能がOSから提供されていることが多くて、これは意外なところだった。例えば、クリップボードの履歴を残しておいて呼び出せるようにする (Windows + Vキー) とか、ぶっ壊れたときに少し前の状態に戻す
はじめに Docker イメージサイズは小さければ小さいほど、Push と Pull の高速化につながり嬉しいです。 docker historyによってイメージレイヤーごとのサイズは分かりますが、どのレイヤーのどのファイルのサイズが大きいかは分かりません。 $ docker history maven:3-amazoncorretto-11 IMAGE CREATED CREATED BY SIZE COMMENT eb8a5bbcd061 12 days ago /bin/sh -c #(nop) CMD ["mvn"] 0B <missing> 12 days ago /bin/sh -c #(nop) ENTRYPOINT ["/usr/local/b… 0B <missing> 12 days ago /bin/sh -c #(nop) COPY file:2bbb488dd73
はじめにPID 1 問題というのは、コンテナを実行した際にアプリケーションのプロセスが PID 1(プロセス番号が1番)で実行されることで、コンテナに対して SIGTERM などのシグナルを送信してもコンテナ内のプロセスが正常に終了しないというものです。ここでは2020年3月現在でこの PID 1 問題を回避する方法を Docker と Kubernetes のそれぞれで紹介します。 TL;DRアプリケーションが「明示的にシグナルをハンドリングするようにする」、または「PID 1 で実行されないようにする」の2つの回避策があるアプリケーションプロセスが PID 1 で実行されないようにする場合、Docker では Tini のような軽量 init を使う、もしくは Docker 1.13 以上の場合は docker run の --init オプションを使うで問題を回避できるKuberne
2017年にもうコンテナの未来・一つのカタチはもう確定したと言え、今更感があるものの、改めてDockerとコンテナについて。 今更こんなことを書くのは、情報が溢れてくる今こそ、正しく理解し、正しい順序で学習することが重要だと切に思うから。 内容についてのお断り How Toはかきません あくまでも2018年時点の私見 目新しい情報はない、2016年頃に書けたレベル Dockerをこう使えとか、こうするのがいいとかの話ではなく、コンテナとDockerに関して大きな視点で現時点で私の考えを書きます。また、私自身はかなりのコンテナ推進派です。 Dockerをよくわかっている人には意味のない記事となります。 コンテナ(Docker)のメリット 何故コンテナがいいのか、コンテナをある程度の学習コストを払ってでもやる理由 コンテナとDocker コンテナ技術はDockerが生まれる前から存在する技術で
Google、Dockerデーモンに依存せずコンテナイメージをビルドできる「kaniko」オープンソースで公開 通常、Dockerfileからコンテナイメージをビルドするには、Dockerデーモンにアクセスする必要があります。Dockerデーモンは実行にルート権限を必要とするため、ルート権限に簡単にアクセスできない環境、例えばKubernetesクラスタ内のDockerコンテナ環境などではコンテナイメージのビルドが難しいとされてきました。 オープンソースで公開されたツール「kaniko」は、この課題を解決するために開発されたとGoogleは説明しています。 With kaniko, we both build an image from a Dockerfile and push it to a registry. Since it doesn’t require any special
はじめに Dockerfileとは docker imageを作成する際のコマンドをコード化したもの 公式ドキュメント Dockerfileは「コンテナを動かす」ためだけなら簡単に作成することが出来るが、工夫せずに書くと運用上いろいろな問題が発生する。 それらの問題点のほとんどは書き方のテクニックによって回避することが出来るが、それらのテクニックを駆使すると、今度はDockerfileの中が複雑になっていく。 Dockerfileはなぜ複雑にならざるを得ないのか 発生する問題とそれに対するテクニックを例を上げて説明していくことで理解してもらう。 rails5.1 hello world projectを例に説明する。 簡単なDockerfileの例 重要なのはFROMとRUNとCOPYのみ FROM ベースとなるimageの指定 https://docs.docker.com/engine
Dockerが商用版Dockerとして「Docker Enterprise Edition」発表、認証済みイメージやプラグインなど提供。無償版は「Community Edition」に Dockerは新しい商用版ソフトウェアとなる「Docker Enterprise Edition」(以下Docker EE)のリリースを発表しました。 Docker EEはDocker社がサポートし、動作保証されたOSやクラウドなどで利用可能。認証済みコンテナイメージ、認証済みプラグインなどがDocker Storeから提供されます。 Docker EEの対応OS、対応クラウドは次の通りです。 CentOS Red Hat Enterprise Linux Ubuntu SUSE Linux Enterprise Server Oracle Linux Windows Server 2016 Amazon
追記:この記事へのコメントとして、この記事以上に内容の趣旨を端的かつ完璧に表しているコメントがありましたので、まずはそれを紹介しつつ、引き続き呼んで頂けると幸いです。 FaaS的だけど「アプリ側の構成も基盤側に合わせて変えるべき」路線なFaaSに対し「アプリは従来のままでもちゃんと動くよう基盤側が頑張るべき」という基盤側の矜持を感じる by takahashim FastContainerアーキテクチャ構想 - 人間とウェブの未来 FaaS的だけど「アプリ側の構成も基盤側に合わせて変えるべき」路線なFaaSに対し「アプリは従来のままでもちゃんと動くよう基盤側が頑張るべき」という基盤側の矜持を感じる2016/11/13 18:25 b.hatena.ne.jp 素晴らしいまとめの一言です。それがまさに本構想に至った意図でございます。僕もこんな趣旨をかけるようになりたいです。上記の的確なコメン
Docker イメージを小さく作るテクニックって、いろいろありますよね。不要なファイルやディレクトリを削除したり、複数の RUN 命令をひとつにまとめたりなどなど。 ところが、ベースイメージに Alpine Linux を使う(FROM alpine とする)と、Docker イメージのサイズを 劇的に小さくできる ことがわかりました。 いままで、Docker イメージのサイズを小さくするために、ちまちまとやってきたことは、なんだったんだろうという感じです。まあ、それはそれで組み合わせて使いますが . . . なんとも . . . ねえ(笑) Alpine Linux とは Alpine Linux は、セキュアで軽量な Linux ディストリビューション musl libc と BusyBox をベースに構成されている 組込み系に適した Linux ディストリビューション パッケージ管理
Docker、オフィシャルイメージのOSをAlpine Linuxへ切り替える計画が明らかに。OSの軽量化に傾倒するDocker Dockerは現在、同社が提供するオフィシャルなDockerイメージのOSにUbuntu Linuxを採用していますが、これをAlpine Linuxへ切り替える計画があることが明らかになりました。 海外のメディアで次のように報じられています。 Docker gets minimalist with plan to migrate images to Alpine Linux | SiliconANGLE What's Behind Docker's Host OS Change? | Data Center Knowledge UbuntuからAlpine Linuxへの切り替え計画が明らかになった理由は、同社の従業員がHacker Newsのスレッドで次のよ
https://www.youtube.com/watch?v=r7qN8QwGv2w 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約6時間前 MesosConのキーノートスピーチを紹介します。 まずは、Apache MesosのProgram Chairを務めるTwitterのBenjamin Hindmanが、Mesosの目指す立ち位置について、 現代において「他のコンピュータ」と形容すると、データセンターを指すケースが多い。 アプリを動かすコンピュータという見地からは、PC / タブレット / スマホ / サーバにOSがあるように、データセンターにもOSが必要。 Mesosは、データセンターのOSである。つまり、分散システムにおけるkernelの役割を担う。 そのエコシステムの広がりは、 Mesosとつ
Dockerに最適化したOSイメージをGoogle Compute Engineが提供開始。CoreOSも利用可能に Google Compute Engineは、Dockerに最適化されたOSイメージをオープンプレビュー版として提供開始しました。また、Dockerのために開発されているCoreOSの正式にサポートを開始しました。 Debian 7をベースにDockerに最適化されたOSイメージ ドキュメント「Containers on Google Cloud Platform」によると、Google Compute Engineで提供されるようになった「Container-optimized Google Compute Engine images」、コンテナ最適化イメージは、主に以下の3つから構成されています。 Debian 7 Dockerランタイム コンテナ管理用のメタデータフレ
仮想化の分野はどんどんと新しいものが出てくる。全部を実際に試すことは出来なくても、筋が良さそうなものについては、どういうものなのかある程度把握しておきたい。最近はちょっと忙しくてあまり情報収集ができてなかったので、追いつこうと思ってちょっと調べてみた。 ハイパーバイザ型仮想化とコンテナ型仮想化 仮想マシンの歴史をたどると、メインフレームの方では随分と昔から使われている技術である、と出てくる。一方で、x86の世界ではそれほど歴史は長くなく、1999年にリリースされたVMwareがおそらく実用的な初の仮想マシン技術だろう。 VMWareはハイパーバイザ型仮想化と呼ばれる技術で、上に乗るOS(ゲストと呼ばれる)に対して仮想的なハードウェアを提供する。ハイパーバイザ型も、どのレイヤで仮想的なハードウェアを提供するかで更に細分化されるらしいが、よく知らないので、ここではそこまでは踏み入らない。ハイパ
ここ最近話題に上がることが多い Immutable Infrastracture と、その他仮想環境周りについての雑感。 Immutable Server や Immutable Infrastracture っていう単語がいろんなところで目に入るようになった。とくに Chad Fowler がブログで取り上げたり、Food Fight に出たり して、世間でも関心が高まった感じがある。 プログラムを書く人にはご存じの通り、この Immutable っていうのは状態が変更出来ないことを指している。Immutable な Infrastracture っていうのは、ざっくり言うと「運用中のサーバーに変更を加えない」っていうアプローチでサーバーを管理しているスタイルのこと。 (ファイルシステムを読み取り専用にする、とかそういう話じゃなくて、あくまでそういう方針でやろうっていう話) サーバーの設
ちょっと前から Docker を使っているので、その話。 Dockr について Docker は dotcloud がオープンソースで公開している、コンテナ技術による仮想化ソフトウェア。 以下のテクノロジーベースにしている: LXC 前にも書いた。Xen とか VirtualBOX みたいにホスト内に仮想マシンを立ち上げるんじゃなくて、ホスト内の隔離された環境で仮想マシンを動かす技術。物理マシンをシミュレーションしているんじゃないってことは、VPS とか EC2 とかの仮想マシン上でも問題なく動くし、マシンを起動するプロセスが不要となるので、一瞬で使い始められるというメリットにつながっている。 AUFS UnionFS(ディレクトリを重ね合わせることができる)の実装の一つ。元の仮想マシンイメージを書き換えないで、更新が発生した部分は別の場所に書き込んでいくようになっている。これにより、仮想
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く