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

推薦する

a href=# と a href=javascript:void(0) の違いの詳細な説明

a href="#"> リンクをクリックすると、ページがページ上部までスク...

HTML ハイパーリンク内の中国語文字化けの分析と解決

Vm 内のハイパーリンク URL は、Get 要求のパラメータとして中国語と連結する必要があります。...

Web面接におけるJS事前解析と変数プロモーションの違い

目次事前分析とは何ですか?変数と関数の準備の違いvar 変数の繰り返し宣言変数と関数の昇格の優先順位...

Docker ベースの nginx ファイル サーバーを構築する方法と手順

1. このマシンに新しい設定ファイルdocker_nginx.confを作成します。 サーバー{ 7...

Mysql5.7 サービスを開始できません。グラフィカル ソリューション チュートリアル

p>「サービス」で手動で起動すると、 コンソールから起動します: 次に、...\MySQL S...

tdが空の場合に境界線を表示する方法

以前、CSS を使用してテーブルの border + bordercolordark + borde...

Node.js でのブレークポイント再開の実装

序文通常のビジネスニーズ: 写真、Excel などをアップロードします。結局のところ、数 MB のサ...

Zabbixを使用してOracleテーブルスペースの操作プロセスを監視する

0. 概要Zabbix は非常に強力なオープンソースの監視ツールです。以下では、Zabbix がテー...

Vue ログインページ用の動的パーティクル背景プラグインの実装

目次動的パーティクル効果は次のとおりです。プラグインをインストールする動的パーティクル効果は次のとお...

MySQL 8.0.15 のインストールと設定方法のグラフィックチュートリアル (Win10 Home バージョン 64)

超初心者の私は、MySQL を学び始めたばかりで、インストール プロセス中に多くの問題に遭遇しました...

MySQLとRedisでセカンダリキャッシュを実装する方法の詳細な説明

Redis の紹介Redis は完全にオープンソースで無料であり、BSD プロトコルに準拠しており、...

MySQLクエリが遅い理由

目次1. 遅いところはどこですか? 2. 不要なデータをクエリしましたか? 1. 不要なレコードをク...

Centos7 で crontab + シェル スクリプトによる定期的な自動ファイル削除の問題を解決する

問題の説明:最近、rsyncで毎回同期するデータ量が多いが、データベースのbakファイルを保持する必...

ウェブサイトのホームページを作成するための基本原則

1. ウェブサイトのホームページのハイパーテキスト ドキュメントの構成構造は、ユーザーの注意をできる...

Linux ソースコードからのソケット (TCP) クライアント側での接続の例の詳細な説明

序文著者は、アプリケーションからフレームワーク、オペレーティング システムに至るまで、あらゆるコード...