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 アプレットのカスタム タブバー コンポーネント

推薦する

Docker+Jenkinsを使用して自動的にビルドおよびデプロイする

この記事では、Docker+Jenkins の自動ビルドデプロイメントを紹介し、皆さんと共有します。...

Vue が Web オンラインチャット機能を実現

この記事では、Webオンラインチャットを実装するためのVueの具体的なコードを参考までに紹介します。...

ウェブページのメモリとCPU使用量を削減する方法

<br />Web ページによっては、サイズは大きくないように見えても開くのに非常に時間...

JavaScript の知識: コンストラクタも関数である

目次1. コンストラクタの定義と呼び出し2. 新しいキーワードの目的3. コンストラクタの問題: メ...

Vueストレージにはブール値のソリューションが含まれています

Vueはブール値でストレージを保存します今日、問題に遭遇しました。バックグラウンドから返された真偽の...

CentOS で RPM を使用して MySQL 5.6 をインストールするチュートリアル

これまでのプロジェクトはすべて Windows システム環境にデプロイされていました。今回は Lin...

mysql ビュー関数の分析と使用例

この記事では、例を使用して MySQL ビューの機能と使用方法を説明します。ご参考までに、詳細は以下...

Bash の山括弧の深い理解 (初心者向け)

序文Bash には、ls、cd、mv などの重要な組み込みコマンドが多数あるほか、grep、awk、...

MySQL のロックとトランザクションの簡単な分析

MySQL 自体はファイルシステムに基づいて開発されましたが、ロックの存在が異なります。データベース...

MySQL ステートメントロックの実装の分析

概要: 2 つの MySQL SQL ステートメント ロックの分析次のSQL文にどのようなロックが追...

MySQL公式エクスポートツールmysqlpumpの使用

目次導入説明書実際の経験長所と短所総括する導入mysqlpump は mysqldump の派生です...

CSSの一般的なプロパティ

CSS の背景: background:#00ffee; //背景色を設定するbackground-...

SQL文のANDとORの実行順序で発生する問題

質問昨日、データベースSQLを書いているときに問題が発生しました。問題の根本は、SQL ステートメン...

HTML(divレイヤー)を介してFLASHにリンクを追加するための実装コード

今日、クライアントが広告を掲載したいのですが、提供された素材は Flash です。私たちはあまり気に...