はじめに
dockerが入っているインターネットに出られないマシンで、新たに外からイメージを取得してコンテナを起動したいときに手っ取り早くtarファイルでイメージを渡してそのファイルからイメージを読み込みコンテナを起動する方法を紹介します。
LAN内に外に出られるコンテナイメージリポジトリがあれば良いですが、リポジトリの管理も手間ではあるためコンテナを起動したいマシンが少ない場合はこちらの方法の方が楽かもしれません。
必要なもの
- gzip
- docker
- ファイルをマシンへ送信する手段(scpなど)
Imageをtarファイルにする
こちらは外(インターネット)に抜けられるマシンで作業します。
必要なイメージを外からPullし、tarファイルにします。
# コンテナイメージをPull
$ docker pull ubuntu:22.04
# Pullしたイメージをtarファイルに
$ docker save ubuntu:22.04 | gzip > ubuntu_22.04.tar.gz
tarファイルからImageを読み込み、コンテナを起動
こちらは外に抜けられないマシンで作業します。事前に先ほど作成したtarファイルをマシンに配置しておいてください。
# イメージの読み込み
$ docker load < ubuntu_22.04.tar.gz
# Imageの確認
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 22.04 e4c58958181a 11 days ago 77.8MB
# 読み込んだイメージからコンテナ起動
$ docker run -i -d ubuntu:22.04
以上がコンテナイメージをtarファイルにし、そのtarファイルからイメージを読み込み起動する方法となります。
試した後は必要に合わせてコンテナやイメージの削除など片付けを行って下さい。