2022年9月8日木曜日

imgを使ってdockerイメージを作成してみた

imgを使ってdockerイメージを作成してみた

概要

前回imgをUbuntuにインストールしてみました
今回は実際にイメージを作成して作成したイメージを使う方法まで紹介します

環境

  • Ubuntu18.04
  • img 0.5.11

Dockerfile

テスト用の簡単なDockerfileを作成します

  • vim Dockerfile
FROM ubuntu
ENTRYPOINT ["/bin/bash", "-c", "echo hello"]

イメージを作成する

build コマンドを使います
作成したDockerfileがあるパスで実行します

  • img build -t test .

これでイメージが作成できます

イメージを確認する

作成したイメージを確認しましょう
イメージの一覧は ls コマンドを使います

  • img ls
NAME                            SIZE            CREATED AT      UPDATED AT      DIGEST
docker.io/library/test:latest   29.02MiB        7 minutes ago   7 minutes ago   sha256:a66eafcdf1dfb4b5072062cf483046630ab70200bdbdd564dc61176747bd8c82

docker images では表示されないことも確認しましょう

イメージをエクスポートする

作成したイメージを docker で使えるようにエクスポートしみましょう
save コマンドを使います

  • img save test -o image.tar

オプションで -o を指定することでエクスポートするファイル名を指定できます
docker で使用する場合はこの tar ファイルを使って docker 側にインポートする感じになります

またデフォルトは docker 形式でエクスポートされます
他の形式 (ociなど)を指定したい場合は--formatオプションを使って指定しましょう

dockerにイメージをインポートする

先ほど作成した image.tar を docker 側にインポートしてみましょう
docker load を使うと外部の圧縮ファイルなどからイメージをインポートすることができます

  • docker load -i ./image.tar
7f5cbd8cc787: Loading layer [==================================================>]  30.43MB/30.43MB
Loaded image: test:latest

動作確認

docker run してイメージがインポートできているか確認しましょう

  • docker run --rm test

これで hello と表示されれば OK です

最後に

img で docker ビルドを作成する方法を紹介しました
docker が使えない環境ではこのように img を使ってイメージを作成してから docker 側にインポートする感じになります

docker のインストールが不要なので dind を使えない環境でもイメージを作成することができます

その他

イメージを削除する場合は rm を使います

  • img rm test

ビルドに使用した他のイメージは du コマンドで確認できます

  • img du
WARN[0000] using host network as the default
ID                              RECLAIMABLE     SIZE            DESCRIPTION
lqwt4dvz2iz7yo3jmn72tlbvr*      true            4KiB            local source for context
oe3gzrgb1xaev7d7r9fn5uk1m*      true            4.056KiB        local source for dockerfile
ovuxl5f604pycqhbqie0rswdl       true            105.9MiB        pulled from docker.io/library/ubuntu@sha256:20fa2d...
Reclaimable:    105.9MiB
Total:          105.9MiB

これらを削除したい場合は prune コマンドを使います

  • img prune

0 件のコメント:

コメントを投稿