本記事は、 Docker/コンテナ仮想環境 Advent Calendar 2024 - Qiita 5日目の記事だ。
Linux で docker をインストールする場合、どのようにしているだろうか?
OS 標準のパッケージマネージャーからのインストールが一般的? それとも、 Docker 公式のリポジトリ (Install - Docker Docs) を使っているだろうか?
そんな docker インストールする方法のひとつに Snap (Snapcraft) がある。
Snap (Snapcraft) とは
Snap (Snapcraft) は、Canonical が開発・管理している、アプリケーションをパッケージ化して配布するためのシステムのひとつだ。 Canonical は Ubuntu を支援している企業だが、 Ubuntu 以外の多くの主要なディストリビューションでも Snap を利用できる。
依存関係を含む一式がコンテナ化されており、異なる Linux ディストリビューション間で共通のパッケージで動作するのが特徴だ。 サンドボックス化したファイルシステム内でインストールしたアプリケーションを動かすという、セキュリティ面の特徴もある。
snap 版 docker は、 /home/
以下のファイルしか参照できない強い制限 1 や、インストール時に docker グループを作成してくれない制限があるが、それ以外はわりと問題なく動く。
Snap 版 docker に於けるプロキシ設定手順
プロキシの設定さえ適切に行えば、 snap 版 docker もプロキシ環境下で動作する。
基本的な設定箇所は、 Docker Daemon と Docker CLI の設定と同じだが、前述のサンドボックス化の関係で、記述するファイルの場所が異なる。
具体的には
/etc/docker/daemon.json
の替わりに/var/snap/docker/current/config/daemon.json
~/.docker/config.json
の替わりに~/snap/docker/current/.docker/config.json
をそれぞれ書き換える。
特に後者 (~/snap/docker/current/*
以下) については、一度そのユーザーで何らかの docker
コマンド (後述の例では docker info
) を実行してから設定しなくてはならない。
そうしないと、フォルダが Snap サンドボックスへマッピングされないからだ。
では、インストールからの手順を追ってみよう