Docker ビルド イメージを実現するための簡単な手順。保存エクスポートの実行を開始し、新しい環境にインポートしてプロセス全体を完了します。

プロジェクトのシナリオと問題の説明

この記事は、Docker イメージの構築、起動、実行、保存、エクスポート、新しい環境へのインポートの完全なプロセスを迅速に実現できる、Docker を使用するための簡単な説明ガイドです。各コマンドには多くのパラメーターと知識が含まれています。詳細な説明は自分で確認できます。この記事を使用すると、Xiaobi でイメージをすばやく構築して使用できます。


Dockerfileを使用してイメージを自動的に構築する

まず、使用するベースイメージに関する情報を含む Dockerfile を準備します。次の Dockerfile を例に挙げます。基本イメージは ubuntu20.04 オペレーティング システムに基づいており、cuda バージョンは 11.2.0、nvidia ドライバーのバージョンは 450.80.02、wget、git、vim、python3、python3-pip です。 、ffmpeg およびその他の一般的に使用されるツールを使用して、作業ディレクトリ /app を作成します。詳細については、この記事の最後にある参照リンクを参照してください。通常、GitHub 上の一部のプロジェクトでは、作成者の環境の Dockerfile も提供されます。

Dockerfile

FROM nvidia/cuda:11.2.0-devel-ubuntu20.04
RUN export DEBIAN_FRONTEND=noninteractive;apt-get update && \
apt-get install -y --no-install-recommends wget git vim python3 python3-pip ffmpeg 
WORKDIR /app

Dockerfile の準備ができたら、Dockerfile が配置されているディレクトリで次のコマンドを実行してイメージをビルドします。

docker build -t MyUbuntu .

(最後の「.」を見逃さないでくださいね~)
パラメータ -t の後には画像のタグ名 (tag) が続きます。デフォルトでは、docker はビルド コンテキストから Dockerfile を検索します。また、-f パラメーターを使用して Dockerfile の場所を指定することもできます。

イメージが正常に作成されたら、docker imagesコマンドを使用して、リポジトリ、タグ、イメージ ID などの情報を含む、作成されたイメージを表示できます。
ドッカーイメージ
上の写真を例にすると、新しく構築されたイメージ REPOSITORY は ebxxx06、TAG は最新、IMAGE ID は 4baxxxe34 (xxx はモザイク) です。


docker run 開始イメージ

簡単な開始コマンド:

docker run -it <镜像的REPOSITORY:TAG>

のように:

docker run -it MyUbuntu:latest

より複雑な起動コマンド:

docker run -it -v /home/app/VeraCode:/app/VeraCode/ -p 8060:8060 --entrypoint="/bin/bash" --gpus all --name MyUbuntu2023 MyUbuntu:latest

その中で、
パラメータ -v の後にローカル ディレクトリ (docker 内のディレクトリ) が続き、2 つのディレクトリは共有されます。パラメータ
-p の後にポート マッピングが続きます。
パラメータ --gpus all は GPU
パラメータを有効にするためのものです --名前の後にコンテナ名が続きます。
最後の MyUbuntu を取得します。latest は、開始するイメージの REPOSITORY:TAG です。

コンテナーが開始されると、コマンドはコンテナーに直接入り、コマンドはexitコンテナーを終了できます。


docker exec コンテナを実行する

起動したコンテナに対して再度実行コマンドを入力するのは比較的簡単ですが、コンテナが起動しているか確認する必要があります。実行中のコンテナを表示する
手順履歴内のすべてのコンテナを表示する手順docker ps
docker ps -a

ドッカープス

通常、最初の実行コマンドを使用してコンテナを起動して終了した後、コンテナのステータスは「終了」になりますコマンドを通じて起動するコンテナの CONTAINER ID を確認します (通常は最初の 3 桁のみが必要です)。コンテナーのステータスが Up ですが、
そうでないコンテナーを実行状態にし、次のコマンドを使用してコンテナーを実行できます。docker ps -adocker start <CONTAINER ID> 或 <CONTAINER ID的前三位>

docker exec -it <CONTAINER ID><CONTAINER ID的前三位> /bin/bash

上の図を例にとります。コマンドは次のとおりです。

docker exec -it 074 /bin/bash

docker commit 保存コンテナ

コマンドを使用しdocker commitてコンテナをイメージにパッケージ化すると、pip によってインストールされた Python ライブラリなど、コンテナの実行時にインストールした環境を維持できますが、エクスポートされたイメージのサイズは維持されます。初期の基本イメージよりもはるかに大きくなる必要があります。コマンドは次のとおりです。

docker commit <CONTAINER ID> <镜像的REPOSITORY:TAG>

のように:

docker commit 074 MyUbuntu:latest

docker save イメージ エクスポート

ローカル イメージのエクスポートには、次の 2 つのコマンドが使用できます。

docker save -o MyUbuntu.tar <IMAGE ID>

または

docker save <IMAGE ID> > MyUbuntu.tar

のように:

docker save -o MyUbuntu.tar 4baxxxe34
或
docker save 4baxxxe34 > MyUbuntu.tar


上記の IMAGE_ID は、次のような<mirror REPOSITORY:TAG> に置き換えることもできます。

docker save -o MyUbuntu.tar MyUbuntu:latest
或
docker save MyUbuntu:latest > MyUbuntu.tar

docker ロードイメージインポート

エクスポートされたイメージ MyUbuntu.tar パッケージを、イメージ パッケージを使用する必要がある Docker ホストに転送できます。次の 2 つのコマンドを使用してイメージをインポートできます。

docker load -i MyUbuntu.tar

または

docker load < MyUbuntu.tar

インポート後、docker imagesコマンドを使用して、新しい環境にインポートされたイメージを表示します。起動して実行するには、上記で紹介した手順を使用します。


説明:
1. docker save と docker export の違い:
docker save はイメージのすべての情報を保存します (履歴情報を含む)。
現在の情報のみをエクスポートするには dockerload で docker import を使用し、docker import で使用します
。イメージをエクスポートするときはイメージ ID。新しい環境をインポートするときは、イメージの REPOSITORY と TAG が存在しない場合があります。次のコマンドを使用してイメージの名前を変更できます。

docker tag <IMAGE ID> <新镜像名称>:<新镜像标签>

参考文献、補足資料

Docker Dockerfile
Docker イメージを作成するにはいくつかの方法があります
Docker イメージの構築、Docker イメージとコンテナーのインポートとエクスポート

おすすめ

転載: blog.csdn.net/qq_39691492/article/details/131420207