本ブログの過去記事 [1] において、Endless OS で Fedora Toolbox が利用できることを紹介しました。Fedora Toolbox は、開発者のためにユーザーアカウント単位でコンテナ環境を提供するコマンドラインツールです。残念なことに、Debian 派生の Endless OS であるのに、収録されている Toolbox で利用できるデフォルトのコンテナは古い Fedora のイメージになっています。できれば Endless OS のコンテナイメージを利用したいところなのですが公開されていません。せめて Debian のイメージを利用したいところです。
Fedora Toolbox は OCI の仕様に準拠したコンテナイメージを利用できることになっています。しかし Debian の Docker イメージを利用しようとしたところ、Toolbox の既知の問題に手こずったので、備忘録としてまとめました。
使用した OS は以下の通りです。
Endless OS 3.9.0 | x86_64 | |
» toolbox 0.0.13-1endless2bem1 |
Toolbox で Debian のコンテナイメージを読み込む
デフォルトは Fedora 29
コンテナイメージを指定しないで作成すると、デフォルトのイメージである Fedora 29 がダウンロードされます。
bitwalk@endless:~$ toolbox create Image required to create toolbox container. Download registry.fedoraproject.org/f29/fedora-toolbox:29 (500MB)? [y/N]: y Created container: fedora-toolbox-29 Enter with: toolbox enter bitwalk@endless:~$
最後のメッセージの通りにタイプするとコンテナに入ります。
bitwalk@endless:~$ toolbox enter Welcome to the Toolbox; a container where you can install and run all your tools. - To create a new tools container, run 'toolbox create'. bitwalk@toolbox:~$
コンテナから抜けるには exit とタイプします。
bitwalk@toolbox:~$ exit logout bitwalk@endless:~$
toolbox list で確認すると、ダウンロードしたイメージと起動しているコンテナを確認できます。
bitwalk@endless:~$ toolbox list Images created by toolbox IMAGE ID IMAGE NAME CREATED 4a6adf1f2a96 registry.fedoraproject.org/f29/fedora-toolbox:29 12 months ago Containers created by toolbox CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME d71cad18afc0 fedora-toolbox-29 57 seconds ago Up 45 seconds ago registry.fedoraproject.org/f29/fedora-toolbox:29
指定した OCI コンテナの使用(マニュアル通りのやり方)
Docker の Debian イメージをダウンロードするには、例えば以下のようにします。
bitwalk@endless:~$ toolbox create -c sid --image docker.io/debian:sid Image required to create toolbox container. Download docker.io/debian:sid (500MB)? [y/N]: y Created container: sid Enter with: toolbox enter --container sid bitwalk@endless:~$
イメージをダウンロードして、一見デフォルトと同じに動いているようですが…、コンテナに入れません。
bitwalk@endless:~$ toolbox enter --container sid
bitwalk@endless:~$
toolbox list で確認すると、コンテナだけ確認できますが起動していません。
bitwalk@endless:~$ toolbox list Containers created by toolbox CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME 7ac8f5b0bfea sid 32 seconds ago Exited (1) 16 seconds ago docker.io/library/debian:sid bitwalk@endless:~$
参考サイト [2] によると、どうやら Toolbox 側の問題のようです。このサイトで示されている解決方法は、本ブログ記事を書いている時点では再現できなかったので他の方法を試しました。
Toolbox 用のコンテナイメージを Podman で準備
参考サイト [3] の方法でうまくいきましたので、この方法を紹介します。
Podman を使ってローカルでビルドしたイメージを Toolbox に使用する方法です。Podman はデーモンを使いませんが、コマンドは Docker と同じです。詳細は参考サイト [4] をご覧になってください。
Dockerfile は日本語環境を考慮して下記のようにしました。
次のようにしてビルドします。
bitwalk@endless:~$ podman build -t debian-toolbox -f Dockerfile STEP 1: FROM docker.io/library/debian:unstable Getting image source signatures Copying blob 2422b4e1b957 done Copying config 782bdf782a done Writing manifest to image destination Storing signatures STEP 2: ENV NAME=debian-toolbox VERSION=unstable ... (途中省略) ... STEP 16: CMD /bin/sh STEP 17: COMMIT debian-toolbox 6227795b04f6567a210b9684db4539553117178b61cde8ca1aa27526877d429c bitwalk@endless:~$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE localhost/debian-toolbox latest 6227795b04f6 2 minutes ago 185 MB docker.io/library/debian unstable 782bdf782a6a 2 days ago 132 MB bitwalk@endless:~$
ビルドしたローカルのイメージから toolbox create コマンドでコンテナを生成します。toolbox list コマンドでコンテナが生成されていることを確認します。
bitwalk@endless:~$ toolbox create -i localhost/debian-toolbox:latest Created container: debian-toolbox-latest Enter with: toolbox enter --container debian-toolbox-latest bitwalk@endless:~$ toolbox list Images created by toolbox IMAGE ID IMAGE NAME CREATED 6227795b04f6 localhost/debian-toolbox:latest 9 minutes ago Containers created by toolbox CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME 11e287f6d185 debian-toolbox-latest About a minute ago Created localhost/debian-toolbox:latest
toolbox create コマンドを実行したときに出力された上記メッセージに従ってコンテナに入ります。
bitwalk@endless:~$ toolbox enter --container debian-toolbox-latest bitwalk@toolbox:~$ ls Dockerfile ダウンロード ドキュメント ビデオ ピクチャ ミュージック bitwalk@toolbox:~$
Fedora Silverblue 33 の場合
ちなみに、Fedora Silverblue 33 で Debian を利用する場合はどうか、同じように確認しました。
使用した OS は以下の通りです。
Fedora Silverblue 33 | x86_64 | » toolbox-0.0.97-1.fc33.x86_64 |
以下のように、マニュアル通りのやり方で Debian の Docker イメージを持ってきてコンテナを利用することができました。toolbox のバージョンが上がっているので、Endless OS に収録されている Toolbox にあった問題は既に対処されているようです。
[bitwalk@localhost ~]$ toolbox create -c sid --image docker.io/debian:sid Image required to create toolbox container. Download docker.io/debian:sid (500MB)? [y/N]: y Created container: sid Enter with: toolbox enter sid [bitwalk@localhost ~]$ toolbox enter sid ⬢[bitwalk@toolbox ~]$ ls ''$'\343\203\200\343\202\246\343\203\263\343\203\255\343\203\274\343\203\211' ''$'\343\203\206\343\203\263\343\203\227\343\203\254\343\203\274\343\203\210' ''$'\343\203\207\343\202\271\343\202\257\343\203\210\343\203\203\343\203\227' ''$'\343\203\211\343\202\255\343\203\245\343\203\241\343\203\263\343\203\210' ''$'\343\203\223\343\203\207\343\202\252' ''$'\345\205\254\351\226\213' ''$'\347\224\273\345\203\217' ''$'\351\237\263\346\245\275' ⬢[bitwalk@toolbox ~]$ exit logout [bitwalk@localhost ~]$
ただし、ロケール関係の設定がされておらず文字化けするので追加の設定が必要になります。
まとめ
Ensless OS に収録されている toolbox が古いバージョンで不具合があったため、却っていろいろ調べることができました。😅
参考サイト
- bitWalk's: Endless OS と Toolbox [2020-11-19]
- Setting up Debian containers on Fedora Silverblue - Base-Art [2020-06-13]
- A quick guide to podman and toolbox in Debian (and maybe Ubuntu) - DEV [2020-02-02]
- DockerユーザーのためのPodmanとBuildahの紹介 - 赤帽エンジニアブログ [2020-07-16]
にほんブログ村
0 件のコメント:
コメントを投稿