入門Docker¶ About¶Dockerの入門からプロダクションで活用するプラクティスについてのドキュメントです。 プロダクションへ導入するために必要なDockerの概要から設計までをなるべく最短経路で学ぶことが目的です。 想定する読者層¶ WebAPIのようなサーバーサイドのプログラミングをしたことがあるDockerをこれからプロダクション環境へ導入してみたいと考えている初学者 Version¶Docker 18.09.3docker-compose 1.23.2 必要な環境¶Docker Hub のアカウントDocker公式レジストリ Play withDockerDockerをWeb上で動かせる環境 Play withDockerを起動するのに前述のDockerHubアカウントが必要Docker forMac(Windows)の場合VMが間に挟まり挙動が異
最近はお客さんとの勉強会でDockerのドキュメントをつまみ食いして読むというのをやっていますが、改めて最新版を読んでみて、いろいろ思考が整理されました。2020年の20.10のマルチステージビルドの導入で大きく変わったのですが、それ以前の資料もweb上には多数あり「マルチステージビルドがよくわからない」という人も見かけるので過去の情報のアンラーニングに使っていただけるように改めて整理していきます。仕事でPythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編で触れた内容もありますが改めてそちらに含む内容も含めて書き直しています。本エントリーの執筆には@tk0miya氏から多大なフィードバックをいただきました。ありがとうございます。 基本的なメンタルモデル現代的な使い方を見ていくために「Dockerを使ってビルドする」というのはどのようなものか考えを整

Mac のDocker の x86-64 エミュにプッツンした勢いで、余ったパソコンをリモートDocker サーバーにした ARMMac でDocker Desktop や Lima を使っていて、dockerbuild --platform x86-64 .... やdocker run --platform x86-64 .... が、いきなりクラッシュしたり、途中まで進むけど特定の箇所でコケたりで困ったことはありませんか。 私はしょっちゅう困ってます。いよいよ我慢の限界になり、部屋でホコリを被ってた x86-64 なパソコンを使ってどうにかすることにしました。 これはホコリをはたいてキッティング中の様子です。 前準備 x86-64 なCPUを搭載したパソコンを調達する Intel でもAMD でもどっちでもいいです。私は手元に転がってたLenovo M75q-1 を

はじめにWASMをブラウザの外で動かすトレンドに関して「Linuxコンテナの「次」としてのWebAssemblyの解説」というタイトルで動画を投稿したのですが、動画では話しきれなかった内容をこちらの記事で補完したいと思います。2022年もWebAssembly(WASM)の話題が多く発表されましたが、そのひとつにDocker for DesktopのWASM対応があります。FastlyやCloudflareもエッジ環境でWASMを動かすソリューションを持っていますし、MSのAKS(AzureKubernetes Service)でもWASMにpreview対応しています。WASMBuildersでも2023年のWASMの予想としてWASMのアプリケーションランタイム利用に関して言及されました。WASMといえば元々ブラウザ上で高速にC++のコードなどを実行するところから始まっている

AWSは、ローカルマシン上にLinuxコンテナのランタイム、ビルドツール、コマンドラインツールなど一式を簡単にインストールし、コンテナを用いた開発環境を開始できるソフトウェア「Finch」をオープンソースで公開しました。 Today we are happy to announce a new open source project, Finch. Finch is a commandline client forbuilding, running, and publishingLinux containers. Learn more in thisblog from @estesp and @ChrisShort https://t.co/5qDdio806E#AWSCloud #containers #opensource pic.twitter.com/TDfcYlwwIs

Start fast with built-in preview environments, autoscaling, and privatenetworking. Customize infrastructure as you grow—noKubernetes required. Run complex apps without complex infraMore flexible than serverless. Less complex thanAWS. We sweat the small details, so deploying your app is a breeze. “Easier than large clouds, more feature-rich than single-purpose hosting providers, Render lets me s

SREチームの藤原です。今回は、AWSのコンテナレジストリであるAmazon ECRから、不要になったコンテナイメージを安全に削除するツールをOSSとして作った話です。Amazon ECRのライフサイクルポリシーでは、設定によっては実際に利用中のイメージを削除してしまうことがあります 現在利用中のイメージを避けて、それ以外の不要なイメージを安全に削除できるCLIツールをOSSとして作成しましたAmazon ECSとECRでのイメージ運用 カヤックでは、コンテナのオーケストレーションにAmazon ECSを主に使用しています。ECSにタスクをデプロイする場合は、イメージのタグにアプリケーションのGitリポジトリのコミットハッシュ(gitlog -1 --format=%Hで計算した値)を付与してAmazon ECRにpushし、タスク定義ではそのタグを含めたURLを指定しています。 例

Docker創始者らが開発、ビルド/テスト/デプロイの自動化をポータブルにするツール「Dagger」登場。そのままローカルでもGitHubでもCircleCIでも実行可能にDockerの創始者であるSolomon Hykes氏らが中心となって開発しているオープンソースのCI/CD環境構築ツール「Dagger」が公開されました。Windows、Mac、Linuxで試すことができます。 And we are live! Introducing Dagger, a new way tobuild CI/CD pipelines. By thecreators ofDocker. https://t.co/DU8racmoUo — dagger (@dagger_io) March 30,2022 Daggerが定義したCI/CDパイプラインはポータブルになる Daggerとは「A P

ローカルとコンテナ内のボリュームを同期できる Mutagen というものを最近知ったので使ってみました。 類似のツールにdocker-sync がありますが、docker-sync はruby 製なのと、同期のために別途 Unison が必要なのに対して、Mutagen はGo 言語製で依存が少なく、インストールや設定などが楽です。 インストール Homebrew(Linuxbrew) でインストールできます。 brew install mutagen-io/mutagen/mutagen ただしDocker Compose と連携する mutagen compose コマンドを使うためには beta を入れる必要があります。 brew install mutagen-io/mutagen/mutagen-beta ローカルのディレクトリの同期 次のコマンドでローカルのディレクトリ
追記:Kubernetes側での公式のアナウンスが2本出ているのでこちらも合わせてご覧ください。kubernetes.iokubernetes.ioKubernetesコミュニティを眺めていたら、やたらめったら色んな人達が1.20 RCのリリースノート引っ張り出して「Dockerが非推奨になるからちゃんと対策を検討してね!!!」とアナウンスをしていて、挙げ句SIG Contributexではその対策に追われてバタバタしている自体を観測しました。 CNCF AmbassadorSlackでもだいぶ燃え上がっていて、見かねて dev.to に記事を投稿したのでそれをかんたんに日本語にまとめてみようと思います。英語のほうはこちらをご覧ください。 dev.to 追記2. 影響範囲を知りたい場合はまずこちらをお読みくださいblog.inductor.me 追記2. 影響範囲を知りたい場合

JVMにチューニング項目は多々あれど、プロダクションで運用する際に予めおさえておきたい項目をまとめてみるエントリです。*1 勿論、OSもJVMもデフォルトである程度のパフォーマンスは発揮でき、計測を伴わないチューニングは悪手であることはよく知られています。 しかし、設定しておかないとパフォーマンスにそのまま影響すると分かるものを調べないのは裸で戦場に赴くようなものです。*2 どんな項目をどう変更すれば良いのか知っていることは重要な武器なのです。 なぜ調べるのか 今回、チューニングポイントを調べるにあたって、私のモチベーションはどこにあるのかを考えると、以下の要件を満たしたいということがあげられます。 アプリケーションとして求められる品質水準として動作する → 性能目標 異常時に事象を追うことができる ここでいう品質水準・異常とは、パフォーマンスが明らかに低い、アプリケーションがクラッシュす
Dockerの概念や仕組みまではなんとなく理解できるもののDockerfileを書こうとするとスムーズに書けなかったり、そもそものDockerの基礎、あるいはコンテナ技術というものの基礎が抜け落ちていてDocker環境に移行できていないところも多いのではと思い、この記事を翻訳しました。 Source:TheDocker Handbook by Farhan Hasin Chowdhury(@Twitter)本記事は、原著者の許諾のもとに翻訳・掲載しております。 コンテナ化の概念自体はかなり古いですが、2013年にDocker Engineが登場したことで、アプリケーションのコンテナ化がはるかに簡単になりました。 Stack Overflow Developer Survey-2020によると、Dockerは#1 最も望まれるプラットフォーム、#2 最も愛されるプラットフォーム、および

前回(第1回)は、Dockerコンテナに対応するアプリケーションを開発・実行するために、Docker Composeというツールを使うのが便利ということで、例としてDocker Composeを使ってWordPressをコマンド1つで実行する方法を紹介しました。WordPressのような、しっかりとしたアプリケーション以外でもDocker Composeが使える場面があります。 今回は、Docker Composeを使ってウェブサーバ(Apache httpd)を実行し、コンテンツを表示する例を見ていきましょう。 なぜDocker Composeなのか? 単純にウェブサーバとして実行するアプリケーションであれば、Dockerだけで何ら困らないでしょう。例えば、Apache httpdサーバを実行するには、次のようにしてコンテナを実行できます。docker run -d httpd しかし

TL;DR 『GitHub Actions 実践入門』という、GitHub Actions の入門書を執筆しました。 miyajan.booth.pm BOOTH でPDF 版を 1,000 円で販売しております。A5 相当で 150 ページほどあります。ぜひお買い求めください! 2020/03/15 追記techbookfest.org技術書典応援祭でPDF 版を 1,000 円、物理本 +PDF 版を 1,500 円(+ 送料 400 円)で販売しております!本の内容 概要 『GitHub Actions』の入門書です。GitHub が提供する CI/CD サービスのGitHub Actions の基礎的な知識からはじめ、実際に活用してみるところまで扱います。 想定読者GitHub Actions の入門者から中級者を対象としています。 この本は、以下の三点を意識しな

はじめにDockerであんなコンテナやこんなコンテナを動かしてると、なんかうまく動かなくて、デバッグのためにtcpdumpとかstraceなどのツールが使いたくなることが稀によくあります。 そんな時、デバッグ対象のコンテナ内にツールを一時的にインストールしちゃうというのが、まぁ簡単で分かりやすいんですが、デバッグ対象のコンテナを汚すのはできれば避けたいところです。Dockerのコンテナの分離というのは、結局のところLinuxのリソースの名前空間の分離であるので、逆に同じ名前空間を共有すれば、デバッグ用に立てた隣のコンテナから、デバッグ対象のコンテナのネットワークやプロセスの状態を観察することも可能です。 また、dockerbuildはDockerfileを標準入力から受け取ることもできるので、ワンライナーにしてデバッグ用のコンテナをシュッと呼び出せるようにしてみました。 TL;DR

Web系の会社にいると,仕事用のPCとしてMacを支給されることが多いと感じている.例にもれず俺も会社ではMacBook Proを使っていたのだけれど,最近Macが使い物にならないくらい遅くなってきた. そもそもそんなに新しいMacではないというのはあるんだけれど. もはやローカルでの開発はほぼDocker化してしまっているので,なにをするにもDockerを起動する必要がある. しかし,Docker forMacは遅い.とくにvolume mountが遅すぎて,webpackなんか走らせたらお茶を入れに行くくらいの猶予が発生する. ---追記---webpackだけならdockerじゃなくていいじゃんと言われたので,一応弁明しておくと,webpack以外もあります. DjangoとかElasticsearchとかElasticsearchとかlocalstackとかredisとかDja

CVE-2019-5736を覚えていますか?今年の2月に見つかったrunc(Dockerがデフォルトで利用しているコンテナのランタイム)の脆弱性で、ホストのruncバイナリを好き勝手にコンテナ内部から書き換えることができるというものです。 脆弱性の仕組みに興味があったので調べたところ、コンテナを攻撃する方法というのは他にもいろいろあって、runcは頑張ってそれを塞いでいるようです。これまとめると面白いかも、と思ったので以下のようなおもちゃを作りました。 Drofuneは簡単なコンテナランタイムです。drofune runとかdrofune execなどでコンテナを起動したり、入ったりすることができます、といえば想像がつくでしょうか。 これだけでは何も面白くないので、Drofuneはわざと安全でない実装になっています。なので、今回発見されたCVE-2019-5736を利用した攻撃も成立します
本番環境はMySQL のマスターとリードレプリカのスレーブで構成されているものの、ローカル環境はシングル構成なこと、よくあります。 そういうとき、レプリケーション遅延が原因による不自然な表示・・不具合が生じることがあったりするので、docker-compose なローカル環境でもサクッとレプリケーション環境を用意する方法。Docker Hub のオフィシャルのMySQL イメージならコンテナの /docker-entrypoint-initdb.d/ にシェルスクリプトを置いておけば初回開始時に自動的に実行されるので、これを利用します。docker-compose.yml 環境変数MYSQL_REPLICATION_USERMYSQL_REPLICATION_PASSWORD でレプリケーションのユーザー名・パスワードを指定します。MYSQL_REPLICATION_HOST
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く