便利という話は聞いていたが,予想以上の代物でもっと早く使えば良かったと思う今日この頃.
しかし,世の中にはネットに繋がっていない(繋げられない)残念な開発環境も少なくない.
そんな環境でもDockerを使うため,コンテナのイメージをエクスポート/インポートする方法を調べた.
我が家のDebianでイメージを作成し,それをRedHat に取り込んで問題なく動いたので,
大抵のディストリビューションで可能な方法だと思う.
まずは,Debian でコンテナイメージを作成する.
Docker をインストールしていなければ,apt install し,自分のユーザをdockerグループに追加する.
$ sudo apt install docker $ sudo apt install docker.io $ sudo usermod -aG docker [Dockerを使うユーザ名]
次にDockerfileを用意する.オフライン環境にインポートするので,必要なパッケージは今のうちにインストールしておく.
$ cat Dockerfile FROM centos:centos8 RUN yum update -y RUN yum groupinstall -y 'Development Tools'
Dockerfile を保存したらイメージをビルドする.
$ docker build -t centos:centos8_update .
ビルドしたイメージをエクスポートする.
$ docker save centos:centos8_update > CentOS8_Update.tar
エクスポートされたイメージはtar 形式で容量が大きいので圧縮する.
$ gzip CentOS8_Update.tar
圧縮したファイルをオフライン環境にコピーし,解凍・インポートする.
$ gunzip CentOS8_Update.tar.gz $ docker load < CentOS8_Update.tar
docker images コマンドで無事にインポートできたか確認する.
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos centos8_update xxxxxxxxxxxx 13 minutes ago 1.49GB
ところで,本記事では取っ付きやすさのため,エクスポート/インポートという表現を用いたが,正確にはセーブとロードである.
Dockerにはexportとimportというコマンドが別にあり,こっちはイメージではなく,コンテナ自体をエクスポート/インポートするコマンドらしい.(使ったことがないので詳細は割愛)
0 件のコメント:
コメントを投稿