よく使われる Docker コマンドと例の概要と分析

よく使われる Docker コマンドと例の概要と分析

1. コンテナライフサイクル管理

(1)ドッカー実行

コマンドの説明
新しいコンテナを作成し、コマンド構文を実行する

docker run [オプション] イメージ [コマンド] [引数…]

オプションの説明:

-a stdin: 標準入力および出力コンテンツ タイプを指定し、STDIN/STDOUT/STDERR を選択できます。
-d: コンテナをバックグラウンドで実行し、コンテナ ID を返します。
-i: コンテナを対話モードで実行します。通常は -t と一緒に使用されます。
-P: ランダム ポート マッピング。コンテナーの内部ポートがホストのポートにランダムにマッピングされます。 -p: ポート マッピングを指定します。形式は次のとおりです: ホスト ポート: コンテナー ポート -t: コンテナーの疑似入力端子を再割り当てします。通常は -i と共に使用されます。
--name="nginx-lb": コンテナの名前を指定します。
--dns 8.8.8.8: コンテナが使用する DNS サーバーを指定します。デフォルトではホストと同じです。
--dns-search example.com: コンテナの DNS 検索ドメイン名を指定します。デフォルトではホストと同じです。
-h "mars": コンテナのホスト名を指定します。
-e username="ritchie": 環境変数を設定します。
--env-file=[]: 指定されたファイルから環境変数を読み取ります。
--cpuset="0-2" または --cpuset="0,1,2": コンテナを指定された CPU にバインドして実行します。
-m: コンテナの最大メモリ使用量を設定します。
--net="bridge": コンテナのネットワーク接続タイプを指定します。bridge/host/none/container の 4 つのタイプをサポートします。
--link=[]: 別のコンテナへのリンクを追加します。
--expose=[]: ポートまたはポートのグループを開きます。
--volume , -v: ボリュームをバインドする

一般的な例

Docker イメージの fat:latest を使用してコンテナをバックグラウンド モードで起動し、コンテナに myfate という名前を付けます。

docker run --name myfate -d 運命:最新

イメージfate:latestを使用して、コンテナをバックグラウンドモードで起動し、コンテナのポート80をホスト上のランダムなポートにマップします。

docker run -P -d 運命:最新

イメージfate:latestを使用してコンテナをバックグラウンドモードで起動し、コンテナのポート80をホストのポート80にマップし、ホストのディレクトリ/dataをコンテナの/dataにマップします。

docker run -p 80:80 -v /data:/data -d 運命:最新

コンテナのポート 8080 をバインドし、ローカル ホスト 127.0.0.1 のポート 80 にマップします。

$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash

イメージfate:latestを使用してコンテナをインタラクティブモードで起動し、コンテナ内で/bin/bashコマンドを実行します。

wh@wh-pc:~$ docker run -it 運命:最新 /bin/bash
ルート@b8573233d675:/# 

(2)スタート/ストップ/リスタート

コマンドの説明:
docker start : 停止したコンテナを1つ以上起動する
docker stop : 実行中のコンテナを停止する
docker restart : コンテナを再起動する方法:
停止したコンテナmyfateを起動する

docker スタート myfate

実行中のコンテナmyfateを停止する

docker を停止します

コンテナmyfateを再起動します

docker 再起動 myfate

(3)ドッカーキル

コマンドの説明
実行中のコンテナを強制終了します。

実行中のコンテナmyfateを強制終了する

wh@wh-pc:~$ docker kill -s KILL myfate

(4) ドッカーrm

コマンドの説明
1つ以上のコンテナを削除する構文

docker rm [オプション] コンテナ [コンテナ…]

オプションの説明:

-f : SIGKILL シグナルを介して実行中のコンテナを強制的に削除します。
-l : コンテナ自体ではなく、コンテナ間のネットワーク接続を削除します。
-v : コンテナに関連付けられているボリュームを削除します。

一般的な例

コンテナfate01とfate02を強制的に削除します。

docker rm -f 運命01 運命02

コンテナ fat01 からコンテナ fat02 への接続を削除します。接続名は db です。

docker rm -l db 

運命コンテナとそれにマウントされているデータボリュームを削除します。

docker rm -v 運命

停止したコンテナをすべて削除します。

docker rm $(docker ps -a -q)

実行中のコンテナをすべて終了する

docker kill $(docker ps -a -q)

停止したコンテナをすべて削除する

docker rm $(docker ps -a -q)

ぶら下がっているタグのない画像をすべて削除します

docker rmi $(docker イメージ -q -f dangling=true)

画像IDで指定した画像を削除します

docker rmi <イメージID>

すべての画像を削除

docker rmi $(docker イメージ -q)

(5)一時停止/一時停止解除

コマンドの説明
docker pause : コンテナ内のすべてのプロセスを一時停止します。
docker unpause : コンテナ内のすべてのプロセスを再開します。
文法

docker pause CONTAINER [CONTAINER ...]
docker unpause CONTAINER [CONTAINER ...]

共通インスタンスは、データベース コンテナー フェイトのサービス提供を一時停止します。

docker 一時停止の運命

サービスを提供するために、fate データベース コンテナーを再開します。

docker 一時停止解除 運命

(6)作成する

コマンドの説明
docker create : 新しいコンテナを作成しますが、起動はしません。docker run と同じ使い方です。
文法

docker create [オプション] イメージ [コマンド] [引数…]
docker runと同じ構文

一般的な例では、Dockerイメージfate:latestを使用してコンテナを作成し、コンテナにmyfateという名前を付けます。

wh@wh-pc:~$ docker create --name myfate 運命:最新      

(7) ドッカー実行

コマンドの説明 実行中のコンテナでコマンドを実行する 構文

docker exec [オプション] コンテナコマンド [引数…]

オプションの説明:
-d : 分離モード: バックグラウンドで実行
-i : 接続されていない場合でもSTDINを開いたままにする
-t : myfate コンテナ内でインタラクティブ モードでコンテナ内の /root/init.sh スクリプトを実行するための擬似端末共通インスタンスを割り当てます。

wh@wh-pc:~$ docker exec -it myfate /bin/sh /root/runoob.sh

運命コンテナで対話型ターミナルを開きます:

wh@:~$ docker exec -i -t myfate /bin/bash

docker ps -a コマンドを使用して実行中のコンテナを表示し、コンテナ ID を使用してコンテナに入ることもできます。
すでに実行中のコンテナの ID を表示します。

# docker ps -a 
...
9df70f9a0714 openjdk "/usercode/script.sh…" 
...

最初の列の 9df70f9a0714 はコンテナ ID です。
exec コマンドを使用して、指定されたコンテナ内で bash を実行します。

# docker exec -it 9df70f9a0714 /bin/bash

(8)ドッカーps

コマンド説明リストコンテナ構文

docker ps [オプション]

オプションの説明:
-a : 実行されていないコンテナも含め、すべてのコンテナを表示します。
-f : 条件に応じて表示されるコンテンツをフィルタリングします。
–format : 戻り値のテンプレートファイルを指定します。
-l : 最近作成されたコンテナを表示します。
-n : 最近作成された n 個のコンテナを一覧表示します。
–no-trunc : 出力を切り捨てません。
-q : サイレントモード、コンテナ番号のみを表示します。
-s : ファイルの合計サイズを表示します。
共通インスタンスには、実行中のコンテナ情報がすべて一覧表示されます。

wh@wh-pc:~$ docker ps
コンテナID イメージ コマンド ... ポート名
09b93464c2f7 運命:最新 "fate -g 'デーモンオフ" ... 80/tcp、443/tcp myfate
96f7f14e99ab mysql:5.6 "docker-entrypoint.sh" ... 0.0.0.0:3306->3306/tcp mymysql

出力の詳細:
CONTAINER ID : コンテナ ID。
IMAGE : 使用する画像。
COMMAND : コンテナを起動するときに実行するコマンド。
CREATED : コンテナが作成された時刻。
STATUS : コンテナのステータス。

7 つの状態があります:

created

restarting

running

removing

paused

exited

dead

PORTS : コンテナのポート情報と使用される接続タイプ (tcp\udp)。
NAMES : 自動的に割り当てられるコンテナ名。

最近作成された 5 つのコンテナーの情報を一覧表示します。

wh@whpc:~$ docker ps -n 5
コンテナIDイメージコマンドが作成されました           
09b93464c2f7 fate:latest "fate -g 'daemon off" 2 日前 ...     
b8573233d675 運命:最新 "/bin/bash" 2日前...     
b1a0703e41e7 fate:latest "fate -g 'daemon off" 2 日前 ...    
f46fb1dec520 5c6e1090e771 "/bin/sh -c 'set -x \t" 2 日前 ...   
a63b4a5597de 860c279d2fec 「bash」 2日前 ..

タグでフィルタリング

$ docker run -d --name=test-nginx --label color=blue nginx
$ docker ps --filter "ラベル=色"
$ docker ps --filter "ラベル=色=青"

名前でフィルタリング

$ docker ps --filter "name=test-nginx"

ステータスでフィルタリング

$ docker ps -a --filter 'exited=0'
$ docker ps --filter ステータス=実行中
$ docker ps --filter ステータス=一時停止

画像でフィルタリング

#イメージ名$ docker ps --filter ancestor=nginx
#画像ID
$ docker ps --filter 祖先=d0e008c6cf02

起動順でフィルタリング

$ docker ps -f 以前=9c3527ed70ce
$ docker ps -f since=6e63f6ff38b0

(9) ドッカー検査

コマンドの説明
docker inspect : コンテナ/イメージのメタデータを取得します。
文法

docker examine [オプション] 名前|ID [名前|ID…]

オプションの説明:
-f : 戻り値のテンプレートファイルを指定します。
-s : ファイルの合計サイズを表示します。
–type : 指定されたタイプの JSON を返します。

一般的な例では、イメージfate:1.6のメタデータを取得します。

wh@wh-pc:~$ docker 検査運命:1.6
[
    {
        「ID」: 「sha256:2c0964ec182ae9a045f866bbc2553087f6e42bfc16074a74fb820af235f070ec」、
        「リポジトリタグ」: [
            「運命:1.6」
        ]、
        「リポジトリダイジェスト」: [],
        "親": ""、
        "コメント": ""、
        「作成日」: 「2016-05-24T04:01:41.168371815Z」、
        「コンテナ」: 「e0924bc460ff97787f34610115e9363e6363b30b8efa406e28eb495ab199ca54」、
        「コンテナ構成」: {
            "ホスト名": "b0cf605c7757",
            "ドメイン名": "",
            "ユーザー": "",
            "AttachStdin": false、
            "AttachStdout": false、
            "AttachStderr": false、
            「公開ポート」: {
                "3306/tcp": {}
            },
...

実行中のコンテナ mymysql の IP を取得します。

wh@wh-pc:~$ docker examine --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' myfate
192.17.0.3

(10) トップ

コマンドの説明 コンテナ内で実行されているプロセス情報を表示します。ps コマンド パラメータをサポートします。
一般的な例

wh@wh-pc:~/mysql$ dockerトップmysql
UID PID PPID C STIME TTY 時間 コマンド
999 40347 40331 18 00:58 ? 00:00:02 mysqld

上記は、よく使われるDockerコマンドと例の詳細な内容です。Dockerコマンドと例の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Dockerコンテナイメージ関連コマンドの基本的な紹介と使用方法
  • 開発者にとって必須の Docker コマンドの概要
  • 一般的なDockerコマンドの詳細な説明
  • 一般的なDockerコマンドの概要
  • 一般的な docker コマンドの概要 (推奨)
  • Docker コマンドラインの完全ガイド (知っておくべき 18 のこと)
  • Dockerコマンドの学習を1つの記事にまとめる
  • 一般的な Docker コマンドの紹介

<<:  ブラウザ内でHTMLタグを中央に配置するCSSスタイル

>>:  JavaScriptとTypeScriptの関係

推薦する

CSS で QR コードスキャンボックスを実装するためのサンプルコード

カメラを開くと通常はスキャンボックスが表示されますが、静的なQRコードではフォーカスを合わせたりスキ...

html+cssレイアウトの3つの方法(ナチュラルレイアウト/フローレイアウト/ポジショニングレイアウト)

1. 自然なレイアウト<br />レイアウトは変更せずに自動的に左揃えになります。 2....

Linux または Android でファイル システムを追加する属性インターフェイスを解析する方法

最初のもの: 1. 主要なヘッダーファイルを追加します。 #include <linux/of...

純粋な CSS でフォ​​ーム検証を実装するためのサンプル コード

日常業務において、フォームの検証は非常に一般的な設計要件です。ログイン ボックスや登録ボックス、アン...

シンプルなアコーディオン効果を実現するjs

この記事では、アコーディオン効果を実現するためのjsの具体的なコードを参考までに共有します。具体的な...

MySQL MVCCメカニズム原理の詳細な説明

目次MVCCとはMySQL ロックとトランザクション分離レベルMySQL 元に戻すログMVCCの実装...

Vue+Vantはトップ検索バーを実装します

この記事では、参考までに、Vue+Vant のトップ検索バーを実装するための具体的なコードを紹介しま...

vue-routeルーティング管理のインストールと設定方法

導入Vue Router 、 Vue.jsの公式ルーティング マネージャーです。 Vue.jsのコア...

JavaScriptでマクロを使用する方法

言語では、DSL を実装するためにマクロがよく使用されます。マクロを使用すると、開発者は JSX 構...

WindowsはVMwareを使用してLinux仮想マシンを作成し、CentOS7.2オペレーティングシステムをインストールします。

目次1. ウィザードに従って仮想マシンを作成します2. オペレーティングシステムをインストールします...

Linux で xargs コマンドを使用する詳細なチュートリアル

みなさんこんにちは。私は梁旭です。 Linux を使用しているときに、いくつかのコマンドを連結する必...

mysql: [エラー] 不明なオプション '--skip-grant-tables'

MySQL データベースがエラー 1045 (28000): ユーザー 'ODBC'...

フロントエンドはJavaScriptを通じてCADグラフィックスの詳細を作成および変更します。

目次1. 現状2. JSでCADグラフィックを作成および変更する2.1 サポートされているCADエン...

MySQLはinet_atonとinet_ntoaを使用してIPアドレスデータを処理します。

この記事では、適切な形式を使用して IP アドレス データをデータベースに保存し、IP アドレスを簡...

HTML でテーブルを分割および結合する (colspan、rowspan)

このコードは水平マージを示しています。 <!DOCTYPE html PUBLIC "...