Docker

コンテナからホストの情報見える問題

コンテナ内でコマンドを実行したときに、コンテナのリソースと思いきやホストのリソースを見ていることがある。 たとえば free コマンドはコンテナでもホストでも同じ実行結果になる。(EC2 の Ubuntu20.04LTS に docker.io 入れて検証) host $ free -h total…

壊して理解する Docker のポータビリティ

Docker のポータビリティにはいくつか注意点がある。 コラム - クラウド時代のオープンソース実践活用 | 第43回 「Dockerイメージ」のポータビリティとLinuxカーネルのABI|CTC教育サービス 研修/トレーニング コンテナってなんだろう― 「コンテナ」の概要を…

Docker Hub のダウンロード数について

Docker Hub のダウンロード数はいつカウントアップされるのかを調査した。 オフィシャルな記載が見当たらなかったので、Download rate limit の記載を参考にしつつ、動作確認した(2021/6/9 時点)。 A pull request is defined as up to two GET requests on …

Docker コンテナのレイヤー構造について

Docker コンテナのレイヤー構造をざっくりと理解する。その過程で Docker のイメージ構造(Image Manifest V 2, Schema 2)もながめる。 概要 About storage drivers によると、Docker は、ユニオンファイルシステムを利用し、複数のレイヤーを重ね合わせるこ…

Docker COPY/RUN/CMD は 1レイヤー増えるけど、FROM は指定したコンテナイメージ分だけレイヤー増える

Best practices for writing Dockerfiles によると、 FROM/COPY/RUN/CMD の 4 種類の操作ごとにレイヤーが作成されるらしい。 COPY/RUN/CMD は 1 レイヤ増えるだけなのは分かるが、FROM 部分は 1 レイヤだけ増えるんだろうか。それとも親のコンテナイメージ…

docker ビルド時のレイヤー上限は 125

docker ビルド時のレイヤー上限は 125 (暫定) という話。終わり。 動作確認 OS は Ubuntu 、docker は 20.10.2 を利用する。 # docker --version Docker version 20.10.2, build 20.10.2-0ubuntu1~20.04.2 以下のようなファイルを用意してイメージをビルドす…

Docker PostgreSQLイメージを利用する

目的 検証環境 PostgreSQLを起動する PostgreSQLに接続する ホストからアクセスする コンテナを利用してアクセスする パターン1 コンテナを利用してアクセスする パターン2 PostgreSQLコンテナの停止 PostgreSQLコンテナの再開 初期データを設定する Postgre…

Docker-Compose の変数定義について

検証環境 docker-compose.ymlで利用できる変数 環境変数 .envファイル Dockerコンテナで利用できる変数 environment env_file docker-compose run -e XXX=YYY 変数の優先順位 コンテナ内の変数の優先順位 docker-compose.yml で参照するときの優先順位 動的…

docker-compose を複数起動する

docker-composeとは? docker-composeは複数のコンテナを手軽に扱うためのツール。 yml形式でコンテナに関する設定ができ、 sample]$ ls docker-compose.yml docker-compose.yml version: "3" services: ap: image: "centos:7" command: ["tail","-f","/dev/…

Jenkinsジョブ(ビルド~テスト)をDockerコンテナ上で実行する ~Docker Pipeline Pluginを使ってみる~

ビルドやテストなどの一連の作業をJenkinsで自動実行することを考える。 通常これらのジョブはJenkinsのmasterやslaveで実行されることになり、ビルドに必要な環境構築(例えばjavaのインストールやmavenのインストール)はJenkinsのmasterやslaveに対して、…