GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

コンテナと Dockerfile から Docker イメージを作成する方法

Docker は、Linux コンテナー用のオープン プラットフォーム管理ツールです。これは、開発者とシステム管理者がアプリケーションをビルドして軽量コンテナーにパッケージ化するための手段を提供します。 Docker は次のコンポーネントで構成されています:

  • Docker エンジン – ポータブルで軽量なランタイムおよびパッケージング ツール
  • Docker ハブ – アプリケーションを共有し、ワークフローを自動化するためのクラウド サービス

Docker は、イメージ ベースのアプリケーション コンテナーを作成するために使用されます。イメージベースのコンテナーは、個々のランタイム スタックを含むアプリケーションを 1 つのコンテナーにパッケージ化します。これにより、コンテナはホスト オペレーティング システムおよびカーネル バージョンから独立したものになります。その結果、ラップトップ、データセンターの仮想マシン、および任意のクラウドで、同じアプリケーションを変更せずに実行できます。このコンテナーを Docker を実行する別のマシンに転送し、互換性の問題なしでアプリケーションを実行できます。

コンテナからのイメージの作成

docker commit」を使用して、コンテナーの現在の状態を新しいイメージとして保存できます。 " 指図。これは、コンテナーを変更し、後で使用するために変更を新しいイメージにコミットする場合に便利です。

スライドの例では、centos:7 イメージから「geeklab」という名前の新しいコンテナーを作成し、コンテナーで bash シェル コマンドを実行します。

# docker run -i -t --name geeklab centos:7 /bin/bash
[root@873abc18f59d /]# 

コンテナー内から、yum コマンドを使用して httpd パッケージをインストールします。

[root@873abc18f59d /]# yum install httpd

exit コマンドを使用して、実行中のコンテナーを停止します。

[root@873abc18f59d /]# exit
exit

「docker commit」コマンドは、変更を新しいイメージに保存します。 -m オプションを使用して、変更を説明するメッセージを提供します。 -a を使用します 著者情報を提供するオプション。コンテナー ID またはコンテナー名、イメージ名、およびタグを指定します。例:

# docker commit -m="CentOS 7 With httpd installed" -a "Geek Lab" geeklab centos7/httpd:v1
sha256:b3c42dd36e247cabcfaf134afb4765e9853ebfbe856c8d785f65cfafc9fd53cd

docker images コマンドの出力に新しいイメージが含まれるようになりました。

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos7/httpd       v1                  b3c42dd36e24        20 seconds ago      334 MB

Dockerfile からのイメージの作成

docker build コマンドを使用して、「Dockerfile」という名前のファイルに含まれる指示から新しいイメージを作成します 」。 Dockerfile の形式は次のとおりです。

# Comment
INSTRUCTION      arguments

命令は大文字と小文字を区別しませんが、引数と区別するために命令を大文字にする慣例があります。 Docker は、Dockerfile 内の命令を順番に実行します。基本イメージから新しいイメージを作成します。最初の命令は FROM で、使用する基本イメージを指定します。例:

FROM centos:7

RUN 命令を使用して、現在のイメージの上にある新しいレイヤーで実行するコマンドを指定し、結果をコミットします。例:

RUN yum –y install httpd

ENTRYPOINT 命令は、イメージから作成されたコンテナーが実行するコマンドを指定します。例:

ENTRYPOINT /usr/sbin/httpd –D FOREGROUND

すべての手順の説明については、dockerfile の man ページを参照してください。次の URL には、利用可能なすべての Dockerfile 命令の説明、使用法、および例も記載されています:https://docs.docker.com/reference/builder/.

画像またはコンテナの保存と読み込み

Docker Hub にアクセスできないシステムで使用するイメージとコンテナーの tar ファイルを作成できます。 「docker save」を使用します 」 コマンドを使用して、イメージを tar ファイルに保存します。リポジトリ内のすべてのイメージを tar ファイルに保存するか、特定のイメージを tar ファイルに保存できます。 STDOUT を tar ファイルにリダイレクトするか、-o オプションを使用して出力 tar ファイル名を指定して、tar ファイルを作成します。

次の例では、stdout をリダイレクトして、centos リポジトリ内のすべてのイメージを centos-all.tar に保存します。

# docker save centos > centos-all.tar

次の例では、centos:latest イメージを centos-lates.tar ファイルに保存します。

# docker save -o=centos-latest.tar centos:latest

docker load コマンドを使用して、イメージを tar ファイルからローカルの Docker リポジトリにロードします。次の例では、centos-all.tar ファイルからイメージを読み込みます:

# docker load --input centos-all.tar
Docker World 初心者向けガイド


Docker
  1. Dockerfileを使用してDockerイメージを構築する方法

  2. Docker コンテナーをバックアップおよび復元する方法

  3. Docker コンテナを一時停止および再開する方法

  1. Dockerイメージからファイルを抽出しますか?

  2. Dockerイメージをあるサーバーから別のサーバーにパッケージ化して転送する方法

  3. Dockerコンテナを停止せずに切り離す方法

  1. Dockerfileを使用してDockerイメージを作成する方法

  2. LinuxでDockerコンテナを作成、一覧表示、削除する方法

  3. Dockerコンテナからカスタムイメージを作成する方法