Docker では、イメージのインポートでは、「load [options]」コマンドを使用して現在のイメージを新しいイメージにコピーします。イメージのエクスポートでは、「save [options] Images」コマンドを使用して、すべてのミラーリングを含む履歴を保存します。情報。
このチュートリアルの動作環境: linux7.3 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
コンテナ テクノロジの発展により、多くのアプリケーション システムはデプロイメントに Docker コンテナを使用することを選択するようになりましたが、場合によっては Docker コンテナが使用されることになります。デプロイ時に問題が発生します。たとえば、アプリケーションは他のサードパーティのイメージに依存する必要があります。この時点でサーバーが内部ネットワークから外部ネットワークに接続できない場合、アプリケーションはデプロイされません。このような状況を踏まえ、Docker は Docker イメージとコンテナーのインポートとエクスポートを正式にサポートし、インターネットにアクセスできるマシン上でイメージをコンパイルし、イメージまたはコンテナーをエクスポートし、最後にエクスポートされたイメージまたはコンテナーをイントラネット サーバーにアップロードすることができます。そして、イメージまたはコンテナをインポートするだけです。
イメージとコンテナのインポートおよびエクスポート操作には、主に、保存、ロード、エクスポート、インポートのコマンドが含まれます。
デモでは、イメージまたはコンテナをローカルで生成し、次にイメージまたはコンテナをエクスポートし、最後に Alibaba Cloud サーバーにアップロードしてインポート機能をデモンストレーションしました。
VS 2019 を使用して ASP.NET Core MVC プロジェクトを作成し、Dockerfile ファイル:
# 使用运行时镜像 FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim # 设置工作目录 WORKDIR /app # 把目录下的内容都复制到当前目录下 COPY . . # 暴露80端口 EXPOSE 80 # 运行镜像入口命令和可执行文件名称 ENTRYPOINT ["dotnet", "DockerDemo.dll"]
を追加して、プロジェクトを公開します。既存の Docker イメージ
を確認すると、.net core イメージが 2 つだけであることがわかります。画像を生成します:
docker build -t dockerdemo .
以下に示すように:
生成された画像を表示
次に、生成されたイメージに基づいてコンテナーを実行します。まず、既存のコンテナーを確認します:
現時点ではコンテナーがないことがわかります。コンテナーを実行します。
#コンテナーが正常に実行されたことがわかります。
関連するコマンド:
docker save [options] images [images...]
上記のイメージを使用して、Docker イメージをエクスポートします。デモ画像:
docker save -o dockerdemo.tar dockerdemo
下の図に示すように:
エクスポート時にエクスポートされるファイルへのパスが指定されます。パスが指定されていない場合は、 、デフォルトは現在のフォルダーです。
または、次のコマンドを使用してエクスポートできます:
docker save > dockerdemo.tar dockerdemo
-o と > はファイルへの出力を示し、dockerdemo.tar はエクスポートされたターゲット ファイル、dockerdemo はソース イメージです名前。
エクスポートされたファイルがローカルに存在するかどうかを確認します。
エクスポートされたばかりのファイルが既にディレクトリの下に存在することがわかります。
まず、XFtp を使用して、上でエクスポートしたイメージ ファイルを Alibaba Cloud サーバーにアップロードします
そして次に、「ファイルが置かれているディレクトリ」を入力します。
Alibaba Cloud サーバー上にどのような画像があるかを確認してみましょう:
上の図からわかるように、現在 Alibaba Cloud サーバーには画像がありません。
関連するインポート コマンドload
docker load [options]
次に、アップロードした画像をインポートします。
docker load -i dockerdemo.tar
以下に示すように:
#または、次のコマンド
docker load < dockerdemo.tar
を使用することもできます。ここで -i (i はインポートを意味します) < はファイルからの入力を意味します。上記の 2 つのコマンドは、画像と、タグ情報を含む関連メタデータを正常にインポートします。
インポート後の画像を表示します:
インポートしたばかりの画像があることがわかります。イメージをインポートした後、イメージに基づいてコンテナーを実行し、最後にアプリケーションを実行できます。
次に、コンテナのインポートとエクスポートを示します。
コマンドのエクスポートが含まれます。
docker export [options] container
上で生成されたコンテナをエクスポートします:
docker export -o D:\containers\dockerdemocontainer.tar dockerdemo
以下に示すように:
其中,-o表示输出的文件,这里指定了输出的路径,如果没有指定路径,则默认生成到当前文件夹。dockerdemocontainer.tar为目标文件,dockerdemo为源容器名。
我们查看目录下面是否生成了导出的容器:
我们首先把导出的容器使用XFTP上传到阿里云服务器。
涉及到的导入命令import。
docker import [options] file|URL|- [REPOSITORY[:TAG]]
如下图所示
我们导入刚才上传的容器
docker import dockerdemocontainer.tar dockerdemo:imp
dockerdemocontainer.tar表示要导入的容器,dockerdemo:imp表示导入后的镜像名称,imp表示给导入的镜像打tag。
如下图所示
然后我们查看镜像:
可以看到这时有我们刚才导入的镜像了,导入的镜像tag为imp。
下面我们来总结一下镜像和容器导入导出的区别:
docker load不能对导入的镜像重命名,而docker import导入可以为镜像指定新名称。例如,上面导入的时候指定dockerdeom:imp。
对于是使用镜像导入导出还是使用容器导入导出该如何选择呢?有下面两点建议:
推荐学习:《docker视频教程》
以上がDocker イメージのインポートとエクスポートとは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。