Docker で既存のイメージに基づいて新しいイメージを構築する方法

Docker で既存のイメージに基づいて新しいイメージを構築する方法

既存のイメージから新しいイメージを構築することは、Dockerfile ドキュメントを通じて行われます。

1. 新しいDockerfileドキュメントを作成する

/home フォルダー内にテスト専用の新しいフォルダー (/docker/test フォルダー) を作成し、そのフォルダー内に新しい Dockerfile ドキュメントを作成します。ドキュメントに次の内容を記述します。

ubuntu:18.04より

apt-get updateを実行する
apt-get install -y vimを実行します。

エクスポーズ80

Dockerfile ドキュメントでは、各行の最初のキーワードは大文字にする必要があります。

最初の行は、新しく作成されたイメージのソースイメージが Ubuntu 18.04 バージョンであることを意味します。

2 行目は、新しいイメージが作成された後に実行される最初のコマンドです。つまり、新しいイメージが作成された後に、さまざまなアプリケーションをダウンロードするための URL が最初に更新されます。

3 行目は vim をインストールします。これは、後でコマンド ラインでスクリプトを編集するのに便利です。-y は自動インストールです。そうでない場合は、インストール プロセスで Y/n の入力を求められます。入力しないと、実行は失敗します。

最後の4行目はポート80を公開することを意味します。昨日の記事のWebアプリのポートマッピングと同様に、この画像でポート5000にマッピングを実行すると、このポートは外部に公開されていないため失敗します。

2. Dockerfileがあるディレクトリでコマンドを実行します。

suルート
cd docker/テスト
cdl-test-0.0 を実行します。

最後の文では、-t の後に指定したイメージ名が続き、イメージ名の後にドットが続いていますが、これは現在のディレクトリの Dockerfile の内容を使用して新しいイメージを作成することを意味します。そのため、前の cd コマンドとこの文の末尾のドットは必須であることに注意してください。 !

3. 新しい画像を表示する

Docker イメージ

結果:

リポジトリ タグ イメージ ID 作成 サイズ
cdl-test-0.0 最新 da5d6c1147a7 4分前 185MB
runoob/centos 6.7 542cf01e7692 27 分前 191MB
ubuntu 16.04 52b10959e8aa 5日前 115MB
ubuntu 18.04 16508e5c265d 5日前 84.1MB
centos 6.7 f2e2f7b8308b 3週間前 191MB
トレーニング/ウェブアプリ 最新 6fae60ef3446 3年前 349MB

4. イメージにインストールされているアプリケーションを表示する

#新しく作成したイメージのコマンドラインを入力します。docker run -it cdl-test-0.0 /bin/bash
#vimを開く
ヴィム
#python3.7をインストール
apt-get で python3.7 をインストールします

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker 実践: 新しいイメージからコンテナを起動するときのエラー解決

<<:  Mysql マスタースレーブ サービスの実装例を構成する

>>:  WeChat アプレットのカスタム タブバー コンポーネント

推薦する

HTML における要素の水平および垂直中央揃えに関する議論

ページをデザインするときには、ログイン ウィンドウを中央に配置するなど、DIV を中央に配置し、ペー...

Vuexはセッションストレージデータを結合して、ページを更新するときにデータが失われる問題を解決します

目次序文1. 理由: 2. 解決策のアイデア: 1. ローカル保存方法: 2. 実装手順: 3. 最...

503 サービス利用不可エラーの解決方法の説明

1. Webページを開くと503サービス利用不可が表示されますが、更新すると正常にアクセスできます。...

入力ボックスのプレースホルダーアニメーションと入力検証を実現する純粋なCSS

さらに興味深いコンテンツについては、https://github.com/abc-club/free...

MySQLトリガーの使用例の詳細

MySQL トリガー構文の詳細: トリガーは、特定のテーブル内のデータが挿入、削除、または更新される...

MySQL 8.0.18 はクローンプラグインを使用して MGR 実装を再構築します

3 ノード MGR 内の 1 つのノードに異常があり、MGR クラスターに再度追加する必要があるとし...

IE6 ウェブページ作成リファレンス IE6 デフォルトスタイル

これは実際には IE の公式ドキュメントではありません。他の人が実践を通じて開発した IE6 のデフ...

Mysqlはブール型の演算を設定します

Mysqlはブール型を設定します1. Tinyintタイプテストテーブルを作成し、blフィールドをブ...

MYSQLストアドプロシージャコメントの詳細な説明

目次1. 使用方法2. 準備3. 文法3.1 変数と代入3.2 入力および出力パラメータ3.3 プロ...

珍しいけれど役に立つJSテクニックをいくつか紹介します

序文プログラミング言語には通常、さまざまな隠されたトリックが含まれており、これらのトリックを上手に使...

Java で ffmpeg を呼び出してビデオ形式を flv に変換する方法の詳細な説明

Java で ffmpeg を呼び出してビデオ形式を flv に変換する方法の詳細な説明注:以下のプ...

MySQLスローログに関する知識のまとめ

目次1. スローログの紹介2. スローログの練習1. スローログの紹介スロー ログの正式名称はスロー...

ubuntu14.04 に jdk1.8 をインストールするチュートリアル

1. jdkダウンロードアドレスをダウンロードする我下載的是jdk-8u221-linux-x64....

ユーザーエクスペリエンスの構築

<br />おそらく、あなたは会社に入社したばかりで、その会社が「ユーザビリティ」に関す...

ORM を使用して MySQL にデータを追加する手順

【序文】 ORM を使用してデータベース内のデータを操作する場合、前提として、新しい ORM モデル...