docker

docker buildx でマルチプラットフォームのイメージを作成する その2

MacOS Ventura で buildx を利用して amd64 と arm64 のイメージを作成する docker buildx でマルチプラットフォームのイメージを作成する - blog.ayakumo.net で紹介した buildx を利用して amd64 と arm64 のイメージを作成していきます。環境は以下になり…

docker buildx でマルチプラットフォームのイメージを作成する

いつのまにかビルド時にランタイム時のターゲットプラットフォームを選択できるようになっていた 昨今は ARM 系(graviton) の EC2 を使用することが多いので、これは助かります。:-) ➜ cat Dockerfile # syntax=docker/dockerfile:1 FROM alpine:3.16 RUN ap…

IntelliJ から Docker イメージの開発作業を行う

IntelliJ の Docker Integration プラグインを使う Dockerfile の修正、ビルド、イメージの動作確認を行うのに、今まではターミナルから docker build -> run -> attach をしていたけれど、全て IntelliJ のインターフェイスでサイクルを回した効率がよかっ…

tail -f /dev/null で調査用コンテナを起動してそのままずっと保持しておく

Docker コンテナを ENTRYPOINT や CMD の指定なしにちょっとだけ立ち上げたいことがある。例えば Docker イメージで提供されている OS の環境で少しだけ作業をしたい場合など。そんな時は大抵 -d でバックグラウンド指定して sleep コマンドで適当に長い秒数…

Docker, Kubernetes 学習とツールとコンピュータサイエンス

Docker, Kubernetes 学習の進めかた Udemy の Learning Docker and Kubernetes by Lab を完了した。実際に手を動かしながらだったので 1 週間ほどかかってしまった。内容はかなりよかった。Docker の基礎から Linux カーネルとの関連(Network Namespaces, cg…

Docker イメージの LABEL 情報は Label-Schema が標準になる

Docker イメージのメタ情報(メンテナ、ライセンス種別、ビルド日時、Github の URL など) は LABEL に集約しようという動きが広まってきている。そのために「どういった情報を載せるべきか」という議論がコミュニティベースで展開された結果、標準として Lab…

Scala, Ruby, Go の REPL 環境を Docker コンテナですぐに試せる Rod (REPLs on Docker) を作った

Scala の学習用に Ammonite 環境 を AWS EC2 上に構築していて、Scala Exercises の例を試せるように紹介されている cats や shapeless のライブラリを追加していた。ただ、個人的に Ruby を使う機会が圧倒的に多いので pry は必須だし、Go もやってみたいと…

プロンプト新世代を agnoster-bash と docker-prompt に感じた

agnoster-bash 会社の同僚に教えていただいて Mac のプロンプトを変えてみた。今までも環境ごとにプロンプトは変えていたけれど、vt100 で xterm な枠の中でせいぜい背景色と文字書を変更するぐらいだった。大げさかかもしれないけど、ブランチの記号がフォ…

bash: /dev/tty: No such device or address を script コマンドで解決する

GitHub - kyagi/rod: REPLs On Docker を作っている中で Ammonite の起動が早くなるようにあらかじめライブラリをキャッシュさせておくため .ammonite/predef.sc にライブラリを追加したあとに echo exit | amm -s を実行するようにしたところ、docker build…

Docker を支える Linux カーネル機能 Network Namespace から docker exec の実装が ip netns exec である雰囲気をつかむ

Linux の Network Namespace を ip netns exec で操作しているうちに「docker exec の正体」がなんとなく見えてきた。 Bridge Networking Deep Dive — Docker Kubernetes Lab 0.1 documentation デフォルトでは docker はコンテナの Network Namespace を見…

docker-machine で aws に docker 環境(docker host) を構築する

いままでメインの docker 環境は AWS EC2 上で curl -fsSL get.docker.com -o get-docker.sh && sudo sh get-docker.sh のように構築していたけれど、 docker-machine for AWS を使ったほうがいろいろ便利だった。 Amazon Web Services (AWS) EC2 example | …

Udemy の Learning Docker and Kubernetes by Lab がとてもよい

Docker 再入門として Learning Docker and Kubernetes by Lab | Udemy のコースを受講しているのだが、とてもよい。コンテナを支える Linux カーネルの機能として cgroups, Network Namespaces (Strorage(aufs), Security, Process Namespaces) の概要から、…