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

推薦する

誤って削除されたデータを復元するための mysqlbinlog コマンドを使用した mysql の実装

実験環境: MYSQL 5.7.22バイナリログを有効にするログ形式 MIXED実験プロセス: 1....

MySQLの大文字と小文字の区別によって発生する問題の分析

MYSQLは大文字と小文字を区別します言葉を見れば信じられます。タイトルを見れば内容がわかります。 ...

MySQL 最適化 Zabbix パーティション最適化

zabbix を利用する上での最大のボトルネックはデータベースです。zabbix のデータストレージ...

CSS3はキングをマッチングさせるときにパーティクルアニメーション効果を実現します

コーディングをしていると、多くのことが同じ結末を迎えることに気づくでしょう。問題を解決する方法は何千...

Linux でのマルチスレッドにおけるフォークの紹介

目次質問:ケース(1)子スレッドを作成する前にフォークするケース(2)子スレッドを作成した後にフォー...

tomcat+nginx を使用してマルチアプリケーション デプロイメントを実装するためのサンプル コード

目次マルチアプリケーションの展開1-Tomcat 構成1.1- プロジェクト構成1.2-サービス構成...

HTML テーブル タグ チュートリアル (36): テーブル ヘッダーの背景色属性 BGCOLOR

<TH> タグは、テーブル内のヘッダーのプロパティを設定するために使用されます。以下の...

JavaScript デザインパターン プロキシパターンの学習

目次概要実装保護エージェント仮想エージェント画像の遅延読み込みを実現する仮想プロキシ概要プロキシ パ...

Ubuntu 20.04でAliソースを変更する方法

なお、この記事では、単に 20.04 ソースに変更する方法を説明するのではなく、20.04 に基づい...

HTML におけるブロックコメントの使用に関する詳細な紹介

HTML の一般的なコメント: <!--XXXXXXXX--> (XXXXXXXX はコ...

Nginx で Basic Auth ログイン認証を設定する方法

nginx でファイルサーバーを構築することもありますが、これは一般に公開されていますが、サーバーが...

MySQL5.6.31 winx64.zip インストールと設定のチュートリアル

#1. ダウンロード # #2. ローカルに解凍し、必要な構成のmy*.iniを変更します。 #3....

MySQLのスペースをクリーンアップするいくつかの具体的な方法

目次序文1. ファイルのディスク使用量を確認する1.1 ディスク容量の使用状況を確認する1.2 ディ...

Vue3.0のさまざまなリスニング方法の包括的な概要

目次リスナー1.ウォッチエフェクト2.見る1.1 聴くための最初の方法1.2 聞く2つ目の方法1.3...

Vue プロジェクトをパッケージ化して Apache サーバーにデプロイする手順

開発環境では、vue プロジェクトは、ローカルで Express サーバーを構築することをベースにし...