Containerd イメージストア (Beta)¶
このページは、 Docker Engine 内でのイメージとファイルシステム管理のため、現在進行中の containerd
との統合についての情報を提供します。
Containerd イメージ保管機能の有効化¶
Containerd Image Store ベータ機能は、デフォルトでは無効化されています。
この機能を有効にするには:
Settings に移動するか、 Mac ユーザは Preferences に移動します。
Experimental タブを選びます。
Use containerd for pulling and storing images の横にあるチェックボックスを選びます。
この機能を無効化するには、 Use containerd for pulling and storing images の横にあるチェックボックスをクリアします。
シンプルな使用例¶
サーバとストレージドライバのバージョンを表示¶
$ docker info
Client:
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc., v0.9.1)
compose: Docker Compose (Docker Inc., v2.10.2)
extension: Manages Docker extensions (Docker Inc., v0.2.9)
sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc., 0.6.0)
scan: Docker Scan (Docker Inc., v0.19.0)
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 22.06.0-beta.0-372-gd3bb8227ce.m
Storage Driver: stargz
driver-type: io.containerd.snapshotter.v1
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc io.containerd.runc.v2
Default Runtime: runc
Init Binary: docker-init
containerd version: 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
runc version: v1.1.4-0-g5fd4c4d
init version: de40ad0
Security Options:
seccomp
Profile: builtin
cgroupns
Kernel Version: 5.10.124-linuxkit
Operating System: Docker Desktop
OSType: linux
Architecture: aarch64
CPUs: 5
Total Memory: 7.653GiB
Name: docker-desktop
ID: f4d28427-96df-404c-b47b-647fe5138e2a
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTP Proxy: http.docker.internal:3128
HTTPS Proxy: http.docker.internal:3128
No Proxy: hubproxy.docker.internal
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
hubproxy.docker.internal:5000
127.0.0.0/8
Live Restore Enabled: false
シンプルなコンテナを実行¶
$ docker run --rm hello-world
Unable to find image 'hello-world:latest' locally
7d246653d051: Download complete
432f982638b3: Download complete
46331d942d63: Download complete
7050e35b49f5: Downloading [> ] 0B/3.208kB
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
コンテナの実行¶
ポート指定の設定をしてコンテナを起動:
$ docker run -p 8080:80 -d nginx
Unable to find image 'nginx:latest' locally
b95a99feebf7: Download complete
91d5b6827ff7: Download complete
fc5ec3f147e4: Download complete
5b1423465504: Download complete
1cdde8b981f2: Download complete
6c0b05f215c0: Download complete
004f1937a10a: Download complete
fd61d71c75fe: Download complete
717bf61a04cf: Download complete
8b6a7e0df8edbe91dfa77716a5e84ca28348f44f545a0d34c70a8987c56e63e0
NGINX コンテナの実行状況を確認します:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
93b4d60dfd08 nginx "/docker-entrypoint.…" 3 seconds ago Up 3 seconds 0.0.0.0:8080->80/tcp stoic_mccarthy
ブラウザからも NGINX の実行状況を確認できます。
マルチプラットフォーム対応イメージの構築¶
Dockerfile のサンプル:
FROM alpine
ENTRYPOINT ["echo", "hello friends"]
マルチプラットフォーム対応イメージの構築:
$ docker buildx build --platform linux/amd64,linux/arm64 -t <username>/hello-friends .
[+] Building 0.7s (7/7)
FINISHED
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 88B 0.0s
=> [linux/arm64 internal] load metadata for docker.io/library/alpine:latest 0.6s
=> [linux/amd64 internal] load metadata for docker.io/library/alpine:latest 0.6s
=> [linux/amd64 1/1] FROM docker.io/library/alpine@sha256:bc41182d7ef5ffc53a40b044e725193bc10142a1243f395ee852a8d9730fc2ad 0.0s
=> => resolve docker.io/library/alpine@sha256:bc41182d7ef5ffc53a40b044e725193bc10142a1243f395ee852a8d9730fc2ad 0.0s
=> CACHED [linux/arm64 1/1] FROM docker.io/library/alpine@sha256:bc41182d7ef5ffc53a40b044e725193bc10142a1243f395ee852a8d9730fc2ad 0.0s
=> => resolve docker.io/library/alpine@sha256:bc41182d7ef5ffc53a40b044e725193bc10142a1243f395ee852a8d9730fc2ad 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => exporting manifest sha256:71bf02afcd7a791c268aa935027f1dc05238f5b5017d755d0fd6d9c71c1b79b9 0.0s
=> => exporting config sha256:f1edbf6b99d22831f9312ab2b8b7642a904c614000bb8369ed673848f4f03578 0.0s
=> => exporting manifest sha256:e41da7320a956163128d77ad69c8109af4799b41bd2e8e660bc6f01136b67f45 0.0s
=> => exporting config sha256:4a5580ab8335432cf6cea7ff695f177d120fa2c9aa4002525025888e3cae16ee 0.0s
=> => exporting manifest list sha256:339d089b539c950268de1edeef9652584e16efa51ea2c84ee586d3143b97234d 0.0s
=> => naming to docker.io/<username>/hello-friends:latest 0.0s
=> => unpacking to docker.io/<username>/hello-friends:latest
マルチプラットフォーム対応イメージの実行:
$ docker run <username>/hello-friends
マルチプラットフォーム対応イメージの送信:
$ docker push <username>/hello-friends
Using default tag: latest
f1edbf6b99d2: Pushed
213ec9aee27d: Pushed
71bf02afcd7a: Pushed
e41da7320a95: Pushed
339d089b539c: Pushed
4a5580ab8335: Pushed
9b18e9b68314: Pushed
Docker Hub でマルチプラットフォーム対応のタグを確認:
Containerd Image Store リリースノート¶
(2022-09-01)
Containerd Image Store は Docker Desktop 4.12.0 では ベータ 機能として提供されています。
既知の問題¶
Containerd Image Store 機能は Buildx バージョン 0.9.0 以上が必要です。
Docker Desktop for Linux (DD4L) では、ローカルにインストール済みのバージョンがこの要件を満たすかどうか確認してください。
注釈
古いバージョンをインストールしている場合、 Docker デーモンはエラー Multiple platforms feature is currently not supported for docker driver. Please switch to a different driver を表示します。 Buildx の新しいバージョンをインストールするには、 Docker Buildx 手動ダウンロード にある手順をご覧ください。
Containerd Image Store 機能と Kubernetes クラスタのサポートは、 Docker Desktop 4.12.0 の段階では互換性がありません。Docker Desktop で Kubernetes を使う場合は、 Containerd Image Store 機能を無効化してください。
フィードバック¶
containerd
と利用可能な新機能をお試しいただき、ありがとうございます。
どんな話でも聞きたいです! 私たちに自由にフィードバックいただくか、問題が見つかり報告する場合は、 フィードバックフォーム の issue トラッカーをご覧ください。
参考
- Containerd Image Store (Beta)