CLOVER🍀

That was when it all began.

Docker

Amazon ECS CLIを使って、ローカルでタスクを実行する

これは、なにをしたくて書いたもの? Amazon ECS CLIを使うと、Amazon ECSのタスク定義をローカルで実行できるらしいので、ちょっと試してみようかなと。 Amazon ECS CLI Amazon ECS CLIは、ローカルからAmazon ECS上でのアプリケーションの構築、リリース、…

Docker Engine(Linux)でコンテナからホスト側のサービスにアクセスする(host.docker.internal)

これは、なにをしたくて書いたもの? Docker Desktopには、host.docker.internalというホスト側のIPアドレスを参照する仕組みがあるようです。 Networking features in Docker Desktop for Windows / Features / Use cases and workarounds / I want to conn…

Docker Compose V2をインストールする

これは、なにをしたくて書いたもの? Docker Compose V2がGAになったというので、こちらに移ろうかな、ということで。 Announcing Compose V2 General Availability - Docker Docker Compose V2について Docker Compose V2のGAをアナウンスしているブログは…

Infinispan Server 13をTestcontainersで使う(Infinispan Server Test Driver)

これは、なにをしたくて書いたもの? Infinispan 13のドキュメントに、Testcontainersについて書かれている箇所が増えていることに気づきまして。 Using Hot Rod Java clients / JUnit testing Using Hot Rod Java clients / Testing Infinispan with test c…

JavaがDockerコンテナ内でどのようにCPU数、メモリサイズを取得しているのかを調べてみる

これは、なにをしたくて書いたもの? 現在のJavaは、コンテナ環境下ではホスト側ではなくコンテナにリソース制限がかけられていればそちらの値を見るように なっています。 これはどこの値を見ているのかな?というのを確認してみたくなりまして。 なお、自…

Dockerコンテナ内で、PM2を使ってアプリケーションを起動する

これは、なにをしたくて書いたもの? 前に、PM2を使ってNode.jsアプリケーションのクラスター化をしてみました。 PM2を使って、Node.jsアプリケーションをクラスター化(CPUスケーリング)させてみる - CLOVER 今度は、Dockerコンテナ内でPM2を使い、アプリ…

Dockerコンテナ内で動作するNode.jsが認識するCPU数、メモリサイズ(ヒープサイズ除く)は、ホスト側のものになるという話

これは、なにをしたくて書いたもの? Dockerコンテナ内で動作するNode.jsが認識するCPU数は、ホスト側のものになってしまうようなので、これを メモしておこうかなと。 メモリについても同様のようですが、ヒープに限ってはコンテナ側の値を見てくれるようで…

Quarkusでコンテナイメージを作成する(Docker Extension/Jib Extension)

これは、なにをしたくて書いたもの? Quarkusのドキュメントを見ていて、コンテナイメージを作成するExtensionができていることに気づいたので。 Quarkus - Container Images ちょっと試してみようかなと。 Quarkus Container Images extension Quarkus 1.3.…

Docker in Docker、Docker outside of Docker(ソケットファイルの共有)を試す

これは、なにをしたくて書いたもの? そういえば、Docker in Dockerについて自分でちゃんと見たことないなと思いまして。 ちょっと調べておこうかな、と。あと、Docker outside of Dockerも少し扱います。 Docker in Docker(とDocker outside of Docker) D…

Dockerfile内で複数行の文字列を作りたい

これは、なにをしたくて書いたもの? 時々、Dockerfile内で複数行の文字列を作りたくなる時があるのですが、どうやったらいいのかすぐに忘れるのでメモして おこうかな、と。 環境 今回の環境は、こちらです。 $ docker version Client: Docker Engine - Com…

どのリクエストにも決まったレスポンスを返す、http-echoサーバー

これは、なにをしたくて書いたもの? どのURLパスにも、とりあえずHTTPステータスコードOKを返してくれるHTTPサーバーを探していまして。 いくつか探してみたのですが、http-echoでいいかなと。 http-echo HashiCorpの提供する、「hello world」的なHTTPサー…

Cloud Native Buildpacksで遊んでみる(Java)

これは、なにをしたくて書いたもの? 前に、Spring BootのCloud Native Buildpacksサポートで遊んでみました。 Spring BootのCloud Native Buildpacksサポートを試す - CLOVER 今回は、Cloud Native Buildpacksそのものに焦点を当てて見てみようかな、と。 C…

Spring BootのCloud Native Buildpacksサポートを試す

これは、なにをしたくて書いたもの? Spring Boot 2.3から、Cloud Native Buildpacksを使ったDockerイメージの作成ができるというので、ちょっと試しておこうかなと。 Support for building Docker images using Cloud Native Buildpacks Spring Boot 2.3.0.…

Dockerのホストおよびコンテナの設定をチェックしてくれる、Docker Bench for Securityを試す

これは、なにをしたくて書いたもの? Docker Bench for Securityという、Dockerのホストおよび動いているコンテナの設定を確認してくれるツールがあるというので、 試してみることにしました。 GitHub - docker/docker-bench-security: The Docker Bench for…

Dockerコンテナイメージのセキュリティ診断ツール、Dockleを試す

これは、なにをしたくて書いたもの? Dockerイメージのセキュリティ診断ツールのひとつとして、「Dockle」というものがあるのを知りまして。 こちらをちょっと試してみようかな、と。 Dockle? コンテナイメージに含まれるパッケージ等の脆弱性診断ツールと…

Linux CapabilitiesとDocker

Dockerを使う時に「--cap-add」とか「--privileged」とか使うことがありますが、あまりわかってないなぁと思って 少し見てみることに。 Docker run reference / Runtime privilege and Linux capabilities Capabiliiesというのは、Linuxでの特権ユーザーに割…

リモートホストで動作しているDockerデーモンを使用する

これは、なにをしたくて書いたもの? リモートホストで動作しているDockerデーモンを扱ったことがなかったので、1度試してみようかな、と。 環境 今回の環境は、こちらです。 $ uname -srvmpio Linux 4.15.0-108-generic #109-Ubuntu SMP Fri Jun 19 11:33:1…

Fluent Bitを使って、DockerコンテナのログファイルをTailプラグインで読む

これは、なにをしたくて書いたもの? 前に、Fluent BitをDockerのlogging driverとして使ってみました。 Fluent BitをDocker logging driverとして使う - CLOVER 今度は、DockerコンテナのログをTailプラグインで読み込んでみようと思います。 Tail - Fluent…

Fluent BitをDocker logging driverとして使う

これは、なにをしたくて書いたもの? 以前、FluentdをDockerのlogging driverとして使ってみたことがありました。 Docker環境で、コンテナのログをFluentdに出力する(Docker logging driverとして使う) - CLOVER 今回は、Fluent BitをDockerのlogging driv…

Docker Composeで、Redis Clusterをできる限り簡単に作る

これは、なにをしたくて書いたもの? Redisでたまにクラスタを作るのですが、ふだん素のDockerでやっていて面倒だなーと思うようになり。 Docker Composeで構成しようと思うのですが、Redis Clusterを作る時はコマンドを実行する必要もあり。 このあたり、ど…

OSSのコンテナイメージ脆弱性スキャンツール、Trivyを試す

これは、なにをしたくて書いたもの? 以前からちょっと気になっていた、Trivyというコンテナイメージの脆弱性スキャンツールを試してみたいと思います。 GitHub - aquasecurity/trivy: A Simple and Comprehensive Vulnerability Scanner for Containers, Su…

docker image build時に、DNSの設定をなんとかしたい

これは、なにをしたくて書いたもの? Dockerコンテナ内で、たまに名前解決できなくて困ることがあります。 それを、Dockerイメージをビルドする時に同じようにハマったら、どうしましょうか?という話。 環境 今回の環境は、こちら。Ubuntu Linux 18.04 LTS…

Jib Maven Pluginで、Dockerコンテナイメージを作る

これは、なにをしたくて書いたもの? 以前、Jib Coreを使ってDockerイメージを作ってみました。 Jib Coreで、Dockerコンテナイメージを作ってみる - CLOVER これでJibの基本的なところはわかった…ことにして、今度はJib Maven Pluginを使ってDockerイメージ…

Jib Coreで、Dockerコンテナイメージを作ってみる

これは、なにをしたくて書いたもの? そういえば、Jibというものがあったけど、全然使ったことがないなと思い、1度試しておこうかなと。 Javaアプリケーションを自動的にコンテナイメージにビルドするツール「Jib」がバージョン1.0に到達 - Publickey Jib、…

Distroless Dockerイメージ(OpenJDK)を試す

これは、なにをしたくて書いたもの? 前々から、DistrolessというDockerイメージが気になっていて、ちょっと試して見ることにしました。 GitHub - GoogleContainerTools/distroless: Language focused docker images, minus the operating system. Base Ima…

Dockerで、PID名前空間を他のコンテナと共有する

「docker container run」コマンドの、「--pid」というオプションを知らなかったので。 $ docker container run --help | grep 'pid ' --pid string PID namespace to use こちらを使うと、指定したコンテナ(ホストも可)とPID名前空間を共有できるようです…

BusyBoxを使って、単一で実行可能なコマンドのバイナリをDockerコンテナ内に放り込む

これは、なにをしたくて書いたもの? Dockerコンテナ内で解析などの作業をする必要が出た時に、コマンドなどが入っていないDockerイメージが相手の場合は どうすればいい?という時の選択肢のひとつとして、BusyBoxが使えそうな気がしたので。 BusyBox Case …

実行中のDockerコンテナの情報を確認する

Dockerコンテナの情報を確認するにはどうしたらいいのかな?ということで、ちょっと調べてみました。 Docker標準のコマンドと、ctopというものが有用そうです。 確認用に、2つのコンテナを用意します。 ひとつは、nginx。 $ docker container run -it --rm -…

cAdvisorで稼働中のコンテナのメトリクスを取得する(+Prometheus)

cAdvisor? cAdvisor(Container Advisor)は、稼働中のコンテナのリソース使用量や、パフォーマンス特性を提供してくれるものです。 GitHub - google/cadvisor: Analyzes resource usage and performance characteristics of running containers. 【Docker…

OpenJDKのDockerイメージって、なにがあるんでしたっけ?

これは、なにをしたくて書いたもの? なにげなく、OpenJDKのDockerイメージを使ったりしていたのですが、1度、どんなイメージがあるのか調べてみようと $ docker search openjdk とか実行すると、わらわらと現れますしね。 ベースのイメージがどうなっている…