導入:
docker イメージを介して、docker は、プロジェクトに必要な実行環境を含むサーバー上で docker コンテナを実行できます。オンライン ウェアハウスには、さまざまなソフトウェア会社によって公式にリリースされた多くのイメージ、またはサードパーティのイメージがあります。アプリケーションをパッケージ化する docker が他のマシンにインストールされている限り、アプリケーションに必要な環境 (jre など) をインストールすることなく、イメージを直接実行できます。
独自の画像をカスタマイズします。
既存のイメージを更新し、新しいカスタム イメージを構築します。
1.docker pull 镜像名:版本
オンライン Docker リポジトリからイメージをプルするために使用します
docker pull ubuntu:18.04
次を使用してdocker images
イメージを確認できます: (デフォルトのパス: /var/lib/docker/containers)
各オプションの説明:
REPOSITORY: イメージのウェアハウス ソースを表します
TAG: 画像のタグ
画像ID: 画像ID
CREATED: イメージの作成時間
SIZE: 画像サイズ
2. docker run -t -i -d イメージ名: version/bin/bash を使用して、 イメージに基づいてコンテナーを実行します</u>
パラメーターの説明:
-i: 対話型操作。
-t: ターミナル。
-d: バックグラウンドで実行 (-i -t を付けると無効になります)
ubuntu:15.10: これは、ubuntu 15.10 バージョン イメージに基づいてコンテナーを起動することを指します。
/bin/bash: コマンドはイメージ名の後に配置されます。ここでは対話型シェルが必要なので、/bin/bash が使用されます。
コンテナーがバックグラウンドで実行されている場合、コンテナーに入るには 2 つの方法があります。
-
1. docker Attach コンテナ ID: 終了時にコンテナは停止します (exit)
-
docker exec -it コンテナ ID /bin/bash: 終了 (exit) 時にコンテナを停止しません。通常はこれを使用します。
-
3. コンテナを変更する
この ubuntu コンテナに入ると、アプリケーションに必要な実行環境を自分でインストールできます。
mysql: sudo apt-get install mysql
JDK: sudo apt-get install openjdk-8-jdk 上記はコンテナ内で操作され、終了入力: exit
4. コンテナを新しいイメージとして送信します:
docker commit -m="has update" -a="qds" コンテナ ID イメージ名: バージョン番号
5. 実行環境を含む新しいイメージを使用してアプリケーションを Docker イメージとしてパッケージ化し、
Java プログラムの jar パッケージを新しい空のフォルダーに置き、新しい Dockerfile を作成します。
Docerfile を編集します。
FROM イメージ名: バージョン番号
MAINTAINER 作成者の署名
RUN
パッケージ化中に実行される Linux コマンド
COPY
[--chown=<ユーザー>:<グループ>] <ソース パス 1>... <ターゲット パス>
CMD
nohup java -jar xxxx.jar > xxx.log 2>&1 &```
FROM
: カスタマイズされたイメージはすべて FROM イメージに基づいており、ここでの nginx はカスタマイズに必要な基本イメージです。以降の操作は nginx に基づいて行われます。
RUN: 続くコマンドラインコマンドを実行するために使用されます。次の 2 つの形式があります。
シェル形式:
RUN <コマンドラインコマンド>
# <コマンドラインコマンド> は、ターミナルで操作するシェルコマンドに相当します。
実行形式:
RUN ["実行可能ファイル", "パラメータ 1", "パラメータ 2"]
# 例:
# RUN ["./test.php", "dev", "offline"] は RUN ./test.php dev と同等ですオフライン
COPY: コピー コマンド。コンテキスト ディレクトリからコンテナ内の指定されたパスにファイルまたはディレクトリをコピーします。
CMD: プログラムの実行に使用される RUN 命令に似ていますが、異なる時点で実行されます。
CMDはdockerの実行時に実行されます。
RUN は docker build にあります。
機能
: 起動したコンテナに対してデフォルトで実行するプログラムを指定し、プログラムの実行が終了するとコンテナも終了します。CMD 命令で指定されたプログラムは、docker run コマンド ライン パラメーターで指定されたプログラムによってオーバーライドされて実行できます。
注
: Dockerfile に複数の CMD 命令がある場合、最後の命令のみが有効になります。
6. Dockerfile に基づいてアプリケーションを含む新しいイメージをビルドします (
docker build -t runoob/centos:6.7 )。
runoob@runoob:~$ docker build -t runoob/centos:6.7 。
ビルド コンテキストを Docker デーモンに送信する 17.92 kB
ステップ 1 : FROM centos:6.7
---> d95b5ca17cc3
ステップ 2: メンテナンス者 Fisher "fisher@sudops.com"
---> キャッシュの使用
---> 0c92299c6f03
ステップ 3 : /bin/echo 'root:123456' |chpasswd
--->を実行します。キャッシュの使用
---> 0397ce2fbd0a
ステップ 4 : useradd runoob を実行します
......
パラメータ説明:
-t: 作成するターゲットイメージ名を指定します
.: Dockerfile ファイルが配置されているディレクトリ。Dockerfile の絶対パスを指定できます。
7. docker イメージを使用して、新しく作成したイメージを表示します
8. docker run -it image name: version を使用してイメージを実行し、その中のアプリケーションにアクセスします
9. このイメージは、docker がインストールされている他のデバイスで直接実行できます。事前にjdkなどの環境をインストールしておきます。
最後に、私の記事を注意深く読んでくださった皆さんに感謝します。互恵性は常に必要です。それほど価値のあるものではありませんが、使用できる場合は、直接受け取ることができます。
この情報は、[ソフトウェア テスト] の友人にとって最も包括的かつ完全な準備倉庫となるはずです。この倉庫は、最も困難な旅を乗り越える何万人ものテスト エンジニアにも同行してきました。また、皆さんのお役に立てれば幸いです。