ミラーのインストーラと同じように、とコンテナアプリケーションは、実行時の状態です。
ビューコンテナ
ビューコンテナ
ドッキングウィンドウを起動した後、使用してdocker ps
現在実行中のコンテナを表示するためのコマンドを:
すべてのコンテナを見ます
上記のコマンドは、すべてのコンテナを確認する必要がある場合、あなたがすることができ、コンテナが現在実行されて表示されているコマンドを表示します。docker ps-a
コンテナを表示すると、いくつかのビューを必要とする場合は、次のようにパラメータの意味は以下のとおりです。
-
コンテナID:コンテナIDがコンテナのIDを参照し、それが混乱した場合にのみ、最初のいくつかのIDがコンテナを識別する使用しないことがあり、64ビットの16進整数で一意の識別子です。
-
画像:画像は、コンテナを作成する際に使用されるミラーを表します。
-
COMMAND:COMMANDコマンドの容器は、最終的な実行を表します。
-
CREATED:コンテナの作成時間。
-
STATUS:コンテナの状態、コンテナが開始時間が表示されることがあり、コンテナ閉鎖時刻を表示することができます。コンテナの現在の状態に依存する特定のディスプレイ。
-
PORTS:ポートの容器開口部。
-
NAMES:設定されていない場合には、血管の名前は、デフォルトの名前があるでしょう。
新しく作成されたコンテナを見ます
使用すると、以下のように、最近、コンテナを作成し表示することができます。docker ps-l
新しく作成されたn個のコンテナを見ます
あなたは使用することができ、次のように作成した最新のを見るために、n個のコンテナを:docker ps-n=XXX
コンテナを作成します。
それはあなたが、再スタートを作成することができ、あなたはまたしてもドッキングウィンドウが最初になります、コマンドを実行した後に作成したときのプロセスは、似ている、それはその方法であるかどうか、1つのステップで始まるを作成することができ、2つの異なる方法で容器全体を作成しました次は、対応する画像がある場合は、ローカルパスに行き、そうでない場合は、検索した場合、ドッキングウィンドウの検索ハブを行く、そして、ダウンロードした後、コンテナを作成するために、そのイメージを使用して開始するために検索。コンテナファイルは、データが変更されたレコードのみ、ミラーなしに変更することができるように、読み取り専用の読み取りと書き込みの画像ファイルのファイルシステム層を追加することです。別にこれらの二つの方法以下の説明。
コンテナを作成します。
開発者は、最初に使用できるdocker create
コンテナを作成するためのコマンドを、容器の外に作成されたこの時間は、静止して、実行していない、例えば、nginxのコンテナを作成するには、次のコマンドを作成することです:
-
docker create nginx
作成したら、コンテナが正常に作成されたかどうかを確認することができます:
コンテナが実行されていないこの時間を作成停止され、コンテナ名はランダムに生成されますが、コンテナを作成するときに、次のように、開発者は、名前を指定することができます。
-
docker create --name=nginx nginx
結果は以下の通りであります:
このとき、name属性はランダムに生成されますが、ユーザーが指定した名前ではありません。
これは、ユーザーを作成するだけの簡単な方法で起動しませんでした。
+開始するコンテナを作成します。
開発者がコンテナを作成して起動するには、両方の必要がある場合は、使用できるdocker run
コマンドを。docker run
コマンドとあなたは両方の容器に異なるモードを開始することができますインタラクティブな背景型コンテナ船を、定義によって、バックグラウンドで、静かにバックグラウンドで実行されている背景タイプのコンテナ船で、ライン上で計算を実行し、開発者が対話する必要はありませんし、対話型容器受信入力開発者は、所与のフィードバックを処理するために必要とされます。ほとんどの場合、作成した開発者は、バックグラウンド型容器ですが、多くの場合、でもバックグラウンド型容器は、必然的に対話する必要があるかもしれないために、以下を実行しました。
背景型容器
例えばnginxのバックグラウンド型容器は、一般的にnginxのバックグラウンドで実行することができます:
-
docker run --name nginx1 -d -p 8080:80 nginx
--name
そして、上記のように、作成したコンテナの名前を表し、-dが血管を表し意味がバックグラウンドで実行され、8080 -pホストにコンテナポート80のマッピングを表し、作成プロセスは次のとおりです。
最初はまだありません対応するコンテナローカル、それは、[検索]を見つけダウンロードし、実行するために行くだろう、地元の検査に行き、ドッカーハブ上のコンテナIDを生成します。操作が成功した後、ブラウザでの入力は、以下のように、nginxののデフォルトページを表示することができます:http://localhost:8080
これは、バックグラウンド型容器を作成するための基本的な方法です。
インタラクティブコンテナ
対話型容器は、Ubuntuは、上記実行例えば、Ubuntuのコンテナを作成し、開発者は、容器が次インタラクティブ作成し、操作に関連するコマンドを入力する必要があり、作成することができます。
-
docker run --name ubuntu -it ubuntu /bin/bash
参数含义都和上文一致,除了 -it,-it 参数,i 表示开发容器的标准输入(STDIN),t 则表示告诉 docker,为容器创建一个命令行终端。执行结果如下:
该命令执行完后,会打开一个输入终端,读者就可以在这个终端里愉快的操作 ubuntu 了。
想要退出该终端,只需要输入 exit 命令即可。
容器启动
启动
如果开发者使用了 docker run
命令创建了容器,则创建完成后容器就已经启动了,如果使用了 docker create
命令创建了容器,则需要再执行 docker start
命令来启动容器,使用 docker start
命令结合容器 id 或者容器 name 可以启动一个容器,如下:
docker start
启动的是一个已经存在的容器,要使用该命令启动一个容器,必须要先知道容器的 id 或者 name ,开发者可以通过这两个属性启动一个容器(案例中,nginx 是通过 name 启动,而 ubuntu 则是通过 id 启动)。一般来说,第一次可以使用 docker run
启动一个容器,以后直接使用 docker start
即可。
重启
容器在运行过程中,会不可避免的出问题,出了问题时,需要能够自动重启,在容器启动时使用 --restart 参数可以实现这一需求。根据 docker 官网的解释,docker 的重启策略可以分为 4 种,如下:
四种的含义分别如下:
-
no表示不自动重启容器,默认即此。
-
on:failure:[max-retries]表示在退出状态为非0时才会重启(非正常退出),有一个可选择参数:最大重启次数,可以设置最大重启次数,重启次数达到上限后就会放弃重启。
-
always表示始终重启容器,当docker守护进程启动时,也会无论容器当时的状态为何,都会尝试重启容器。
-
ubless-stopped表示始终重启容器,但是当docker守护进程启动时,如果容器已经停止运行,则不会去重启它。
容器停止
通过 docker stop
命令可以终止一个容器,如下:
可以通过 name 或者 id 终止一个容器。
容器删除
单个删除
容器停止后还依然存在,如果需要,还可以通过 docker start
命令再次重启一个容器,如果不需要一个容器,则可以通过 docker rm
命令删除一个容器。删除容器时,只能删除已经停止运行的容器,不能删除正在运行的容器。如下:
可以通过 name 或者 id 删除一个容器。如果非要删除一个正在运行的容器,可以通过 -f 参数实现,如下:
批量删除
容器也可以批量删除,命令如下:
-
docker rm $(docker ps -a -q)
docker ps-a-q
会列出所有容器的 id ,供 rm 命令删除。
如下命令也支持删除已退出的孤立的容器:
-
docker container prune
总结
本文主要向大家介绍了 Docker 容器的基本操作,更多高级操作我们将在下篇文章中介绍。
参考资料:
[1] 曾金龙,肖新华,刘清.Docker开发实践[M].北京:人民邮电出版社,
Java 极客技术公众号,是由一群热爱 Java 开发的技术人组建成立,专注分享原创、高质量的 Java 文章。如果您觉得我们的文章还不错,请帮忙赞赏、在看、转发支持,鼓励我们分享出更好的文章。
关注公众号,大家可以在公众号后台回复“博客园”,免费获得作者 Java 知识体系/面试必看资料。