ようへいの日々精進XP

よかろうもん

Docker

docker コマンドで ECS クラスタにデプロイ出来るようになった (beta 版) ので試してみたけど挫折した

tl;dr チュートリアル 要件 ecs-plugin docker ecs setup コンテナイメージを Docker Hub にプッシュ コンテキストを切り替える docker ecs compose up 雑にコードリーディング 残念ながら docker ecs compose up.go convert.go 以上 tl;dr AWS より以下のよ…

Alpine Linux Docker イメージを利用した Dockerfile 内で if else を使う時のメモ

tl;dr 要件 Dockerfile ハマったところ 以上 tl;dr Alpine Linux な Docker イメージを利用して Dockerfile を認めた際, カジュアルに if eles を使ったらちょっとハマったのでメモしておきます. 要件 Alpine Linux なコンテナイメージを使う ビルド時の引数…

Docker コンテナランタイムについて少しだけ勉強した (7)

tl;dr マインドマップ ハンズオンメモ 検証環境 事前準備 隔離環境の Alpine Linux に taskset をインストールする taskset の動作確認 隔離環境にて CPU (プロセッサ) 利用を制限する 利用可能なプロセッサの確認 隔離環境にて 0 番のプロセッサのみ利用可…

Docker コンテナランタイムについて少しだけ勉強した (6)

tl;dr マインドマップ ハンズオンメモ 検証環境 ただの chroot の場合 Alpine Linux を rootfs に chroot する chroot 環境で proc をマウントすると unshare を使う unshare で隔離 PID namespace Mount namespace User namespace 以上 tl;dr 会社から借り…

Docker コンテナランタイムについて少しだけ勉強した (5)

tl;dr マインドマップ ハンズオンメモ 検証環境 Filesystem bundle の作成 コンテナの起動 コンテナの停止 以上 tl;dr 会社から借りっぱなしの Software Design 2020 年 2 月号で特集されている Docker コンテナランタイムについての記事を読んでみたメモで…

Docker コンテナランタイムについて少しだけ勉強した (4)

tl;dr マインドマップ 所感 コンテナとはそもそも何なのか OCI Runtime Specification これまで 以上 tl;dr 会社から借りっぱなしの Software Design 2020 年 2 月号で特集されている Docker コンテナランタイムについての記事を読んでみたメモです. gihyo.j…

Docker コンテナランタイムについて少しだけ勉強した (3)

tl;dr マインドマップ 所感 色々なランタイム Docker って containerd 低レベルランタイム runc gVisor 以上 tl;dr 会社から借りっぱなしの Software Design 2020 年 2 月号で特集されている Docker コンテナランタイムについての記事を読んでみたメモです. …

Docker コンテナランタイムについて少しだけ勉強した (2)

tl;dr マインドマップ 所感 Kubenetes における... コンテナランタイムって 高レベルランタイム 低レベルランタイム pause コンテナの存在が面白い kubelet 以上 tl;dr 会社から借りっぱなしの Software Design 2020 年 2 月号で特集されている Docker コン…

Docker コンテナランタイムについて少しだけ勉強した (1)

tl;dr マインドマップ 所感 コンテナのメリットって Docker は高レベルランタイム やっぱ Kubernetes 以上 tl;dr 会社から借りっぱなしの Software Design 2020 年 2 月号で特集されている Docker コンテナランタイムについての記事を読んでみたメモです. gi…

【俺の一行チップス】Elasticsearch 6.x の Docker イメージにプラグインをインストールして docker-compose で Elasticsearch 環境を構築したい

やりたいこと やったこと ハマった 参考 やりたいこと Elasticsearch 6.x の Docker イメージを利用したい docker build の途中で Elasticsearch プラグインをインストール docker-compose で Elasticsearch 環境を構築したい やったこと 以下のような Docke…

【俺の一行チップス】docker-compose の Extension fields を使って DRY な YAML にする(docker-compose 3.4 以降, docker-compose 2.1 以降編)

やりたいこと 諸注意 やったこと これまでの docker-compose.yml 令和の docker-compose.yml 以上 参考 やりたいこと docker-compose.yml を書いていて, 同じ内容を何度も何度も書いていて, 令和の時代にこれはアカンということで Anchor, Alias で少しでも …

【俺の一行チップス】 Nginx で固定レスポンスを返す (ことを Go の testing パッケージで検証する)

やりたいこと 前回, Nginx で特定のパスにおいて固定のレスポンス (ステータスコード, ボディ) を返す為の設定についてメモったけど, 今回は, これを検証するにあたって Go の testing パッケージでテストコードを書いて検証したお話を少し. inokara.hateblo…

お客様の中に Ruby がソースコードからインストールされた Amazon Linux コンテナはいらっしゃいませんか?

tl;dr Amazon Linux に Ruby がソースコードからインストールされているコンテナが欲しくなって, https://www.ruby-lang.org/ja/downloads/ でダウンロード出来る Ruby がインストールされているコンテナイメージを夜な夜な自動的に作ってくれる仕組みを作っ…

最近ギョームでやったこと (5) 〜 Fargate で動いている ECS Scheduled Task (バッチ処理) のリソース使用量を計測出来るようにしました 〜

tl;dr なぜ こんな感じで... こんな感じで... (1) こんな感じで... (2) こんな感じに... なりました 実装にあたって得た知見等 Task metadata endpoint コンテナデザインパターン リソース (CPU 使用率, Memory 使用量) の計算方法 コンテナの起動順序の制御…

Docker Remote API に UNIX ドメインソケット経由でアクセスする

tl;dr ニッチかもしれないけど, ECS の Docker 用ストレージ容量監視を Docker Remote API を介して行えないか, そして, できれば UNIX ドメインソケット経由で API にアクセス出来ないかを調査しました. 今回は curl を使って UNIX ドメインソケットにアク…

docker-machine と DigitalOcean を使って "頼りになるのは, 近くの VM より遠くの VPS" な docker 環境を整える

tl;dr 頼りになるのは, 近くの VM より遠くの VPS DigitalOcean docker-machine Docker 用の Droplet を起動 Firewall を設定する 一通り設定が終わったら これで Docker を操作してみましょう 後始末 以上 tl;dr 個人的に利用している MacBook Air (11-inch…

ギョームで使うシェルスクリプトを社内に配布する方法を検討した

tl;dr シェルスクリプトサンプル 配布パターン (1) 〜 Amazon S3 に設置して配布する 〜 S3 バケットの設定 セットアップシェルスクリプト 実際の配布からスクリプトの実行までの流れ 配布パターン (2) 〜 Docker コンテナで配布する 〜 おっ, S3 よりもモダ…

CircleCI で Docker イメージをビルドして Amazon ECR に push するまでのハンズオン

tl;dr やんなきゃいけないこと やったこと リポジトリ Dockerfile goss.yaml .circleci/config.yml 実際に 以上 参考 tl;dr Docker のコンテナイメージを AWS の CodePipeline や CodeBuild を介して, コンテナレジストリ (ECR) に push する流れを実装した…

Docker や docker-compose で TTY を有効にした場合, 標準出力の改行コードが CR+LF になる件

tl;dr なぜ, こんなことになるのか なぜ, TTY の行末には CRLF が付与されているのか 参考文献 tl;dr ギョームで Docker (docker-compose) を使ったちょっとしたコマンドラインツールを作った時に, 以下のように実行して標準出力をファイルに出力すると, 何…

FTP ユーザーの振る舞いをテストをする rspec-ftp を試した + 抹茶を追加しました

tl;dr FTP ユーザーの振る舞いをテストする なぜ, FTP ユーザーの振る舞いをテストしたいのか サンプルはこちらから サンプル実行 想定する FTP サーバー, FTP ユーザー 環境構築 ユーザー名, パスワードを secret.yml に定義する テストを実行する...その前…

もう 2018 年だけど, Jenkins + Docker + itamae + Serverspec でインフラ CI っぽいことをやってるのでメモ

やってること メモ Jenkins を動かす環境 Docker イメージ itamae レシピ Serverspec テスト Jenkins の準備 プラグイン Docker 周り ジョブ infra-itamae の設定 infra-serverspec の設定 動いてる図 Build Pipeline ログ 以上 やってること 今更かもしれな…

Jenkins のマスターとスレーブを Docker コンテナで起動して Python の unittest を pyenv 環境で動かすまでのメモ

前提 Jenkins を動かす環境 Python の unittest Jenkins のコンテナの起動と初期設定 起動 初期設定 プロジェクトの設定 スレーブ環境の準備 スレーブ環境の前提 スレーブの追加 プロジェクトでスレーブを利用するように設定 ビルド 以上 前提 Jenkins を動…

俺は Linux コンテナについてなんにも解っていなかった 〜 haconiwa で学ぶ Linux コンテナ (1) 〜

追記 直近の Docker 界隈について Linux コンテナ 参考 Linux コンテナとは Linux コンテナを構成する主な機能 OS リソース毎の Namespace cgroup サブシステム こんなにざっくりでは、Linux コンテナは語れないと思うけど haconiwa haconiwa とは haconiwa …

Boto3 から DynamoDB の各種操作メモ(テーブル一覧取得、データ追加、データ取得、データ更新)

こちらからの転載。 やりたいこと Boto3 を利用して以下のような DynamoDB の各種操作を行いたい。 テーブル作成 テーブル一覧を取得 テーブルにデータを追加(put_item) テーブルからデータを全件取得(scan) テーブルのデータを取得(query) テーブルのデ…

Amazon ECR から docker pull する為に最低限必要な手順

tl;dr 整理した。 大前提 最低でも IAM Policy の AmazonEC2ContainerRegistryReadOnly をつけた IAM Role 又は IAM User を使う EC2 上での手順 前提 EC2 には 管理ポリシーの AmazonEC2ContainerRegistryReadOnly をつけた IAM Role が付いている 手順 doc…

Docker for Windows をあと 10 分位使ってみた(Shared Drives を触る)

tl;dr Docker for Windows の Settings... に Shared Drives という設定があったので触ってみた。 どうやらホスト OS のドライブ(フォルダ)を Docker のボリュームオプションを使ってマウントする為の設定らしい。 メモ Shared Drives を有効にする コンテ…

Docker for Windows を 15 分くらい使ってみた

tl;dr Docker for Windows が 7/28 位に正式にリリースされたらしいので試してみたメモ。 blog.docker.com docs.docker.com 興味深いのが Docker for Windows は仮想マシンに Hyper-V を利用している点。普通に使う分には Hyper-V を使っていることはユーザ…

Serverspec と Infrataster でテストした Docker コンテナイメージを Jenkins を介して Amazon ECR に push する考察

tl;dr ニーズがあるかどうか解らないけど...Jenkins を触ってみたくて試してみた。Jenkins の Amazon ECR プラグインとの出会いに身震いした。 参考 http://serverspec.org/ http://infrataster.net/ https://blog.mikesir87.io/2016/04/pushing-to-ecr-usin…

ECS で Amazon CloudWatch Logs にログ出力が出来るようになったのでチュートリアル

tl;dr aws.typepad.com Docker 1.9.1 から Logging Driver として CloudWatch Logs はサポートされていたが、ECS の Task Definition に定義して利用は出来なかった(と記憶している)ので、今回から Task Definition に定義して利用出来るようになったとの…

Aws::RDS::Errors::SignatureDoesNotMatch というエラーが出た際の対処

ひとまずメモ。 課題 Docker コンテナ内で RDS のログを AWS SDK for Ruby で弄っている時に以下のようなエラーが出た。 Aws::RDS::Errors::SignatureDoesNotMatch error=#<Aws::RDS::Errors::SignatureDoesNotMatch: Signature expired: 20160506T021015Z is now earlier than 20160506T021408Z (20160506T022908Z - 15 min.)> RDS に限らず API コールを行う際の署名の有効期限が切れている旨…</aws::rds::errors::signaturedoesnotmatch:>