システム管理者と開発者向けのDockerコマンドチートシート…
Dockerは、コンテナー内の依存関係を使用してアプリケーションをパッケージ化して実行するコンテナー化システムです。 Dockerを使用するときに知っておく必要があるdockerコマンドがいくつかあります。この記事はそれについてすべてです.
Dockerが何であるかわからない場合は、これを取ることができます Udemy初心者コース.
Contents
バージョンを見つける
最初に知りたいことの1つは、インストールされているDockerバージョンを見つける方法です.
[メール保護]:/ home / geekflare $ docker –version
Dockerバージョン18.09.6、ビルド481bc77
画像をダウンロードしています
からドッカーのイメージをプルする必要があるとしましょう dockerhub (dockerリポジトリ)。 Apache HTTPサーバーイメージをプルする次の例.
[メール保護]:/ home / geekflare $ docker pull httpd
デフォルトのタグを使用:最新
最新:library / httpdからのプル
f5d23c7fed46:プル完了
b083c5fd185b:プル完了
bf5100a89e78:プル完了
98f47fcaa52f:プル完了
622a9dd8cfed:プル完了
ダイジェスト:sha256:8bd76c050761610773b484e411612a31f299dbf7273763103edbda82acd73642
ステータス:httpd:latestの新しいイメージをダウンロードしました
[メール保護]:/ home / geekflare $
画像
システムにプルされたすべてのDockerイメージを、TAG / IMAGE ID / SIZEなどのイメージの詳細とともに一覧表示.
[メール保護]:/ home / geekflare $ Dockerイメージ
リポジトリTAG画像ID作成済みサイズ
httpd最新ee39f68eb241 2日前154MB
hello-world最新fce289e99eb9 6か月前1.84kB
sequenceiq / hadoop-docker 2.7.0 789fa0a3b911 4年前1.76GB
走る
コマンドに記載されているDockerイメージを実行します。このコマンドは、Apache HTTPサーバーが実行されるDockerコンテナーを作成します.
[メール保護]:/ home / geekflare $ docker run -it -d httpd
09ca6feb6efc0578951a3e2557ed5855b2edda39a795d9703eb54d975930fe6e
何が実行されている?
psは、コンテナー詳細で実行されているすべてのDockerコンテナーをリストします.
[メール保護]:/ home / geekflare $ docker ps
コンテナーID画像コマンド作成済みステータスポート名前
09ca6feb6efc httpd "httpd-foreground" 36秒前33秒前80 / tcp suspicious_bell
ご覧のとおり、ApacheサーバーはこのDockerコンテナーで実行されています.
ps -a
実行中/終了済み/停止中のすべてのDockerコンテナーをコンテナーの詳細とともにリストする.
[メール保護]:/ home / geekflare $ docker ps -a
STATUSポートの名称を作成したコンテナのIDイメージコマンド
09ca6feb6efc httpd "httpd-foreground" 51秒49秒80 / tcpのsuspicious_bellアップ前
2f6fb3381078 sequenceiq / hadoop-docker:2.7.0 "/etc/bootstrap.sh -d" 9日quizzical_raman前終了しました(137)前2週間
9f397feb3a46 sequenceiq / hadoop-docker:2.7.0 "/etc/bootstrap.sh-…" 2週間前終了(255)2週間前2122 / tcp、8030-8033 / tcp、8040 / tcp、8042 / tcp、8088 / tcp、19888 / tcp、49707 / tcp、50010 / tcp、50020 / tcp、50070 / tcp、50075 / tcp、50090 / tcp determined_ritchie
9b6343d3b5a0 hello-world "/こんにちは" 2週間終了しました(0)2週間前peaceful_mclean前
エグゼクティブ
Dockerコンテナーにアクセスし、コンテナー内でコマンドを実行します。この例では、Apacheサーバーコンテナーにアクセスしています.
[メール保護]:/ home / geekflare $ docker exec -it 09ca6feb6efc bash
[メール保護]:/ usr / local / apache2#ls
bin build cgi-bin conf error htdocs icons include logsモジュール
[メール保護]:/ usr / local / apache2#
exitと入力してEnterキーを押し、コンテナから出ます.
コンテナーの削除
コマンドに記載されているコンテナーIDのDockerコンテナーを削除する.
[メール保護]:/ home / geekflare $ docker rm 9b6343d3b5a0
9b6343d3b5a0
以下のコマンドを実行して、コンテナが削除されたかどうかを確認します.
[メール保護]:/ home / geekflare $ docker ps -a
STATUSポートの名称を作成したコンテナのIDイメージコマンド
09ca6feb6efc httpd "httpd-foreground" 分程度アップ分前、約80 / tcpのsuspicious_bell
2f6fb3381078 sequenceiq / hadoop-docker:2.7.0 "/etc/bootstrap.sh -d" 9日quizzical_raman前終了しました(137)前2週間
9f397feb3a46 sequenceiq / hadoop-docker:2.7.0 "/etc/bootstrap.sh-…" 2週間前終了(255)2週間前2122 / tcp、8030-8033 / tcp、8040 / tcp、8042 / tcp、8088 / tcp、19888 / tcp、49707 / tcp、50010 / tcp、50020 / tcp、50070 / tcp、50075 / tcp、50090 / tcp determined_ritchie
画像を削除しています
コマンドに記載されているdocker image idを持つdocker imageを削除します
[メール保護]:/ home / geekflare $ docker rmi fce289e99eb9
タグなし:hello-world:latest
タグなし: [メール保護]:41a65640635299bab090f783209c1e3a3f11934cf7756b09cb2f1e02147c6ed8
削除:sha256:fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e
削除済み:sha256:af0b15c8625bb1938f1d7b17081031f649fd14e6b233688eea3c5483994a66a3
[メール保護]:/ home / geekflare $
Dockerを再起動します
コマンドに記載されているコンテナーIDでDockerコンテナーを再起動します。.
[メール保護]:/ home / geekflare $ docker restart 09ca6feb6efc
09ca6feb6efc
以下のコマンドを実行し、STATUSパラメータを確認して、コンテナが最近起動したかどうかを確認します.
[メール保護]:/ home / geekflare $ docker ps
コンテナーID画像コマンド作成済みステータスPORTS NAMES
09ca6feb6efc httpd "httpd-foreground" 6分前アップ9秒80 / tcp suspicious_bell
Dockerを停止する
コマンドに記載されているコンテナーIDのコンテナーを停止します.
[メール保護]:/ home / geekflare $ docker stop 09ca6feb6efc
09ca6feb6efc
以下のコマンドを実行して、コンテナがまだ実行されているかどうか、またはコンテナが停止しているかどうかを確認します.
[メール保護]:/ home / geekflare $ docker ps
コンテナーID画像コマンド作成されたステータスポートNAMES
Dockerを起動する
dockerのこのコマンドは、コマンドに記載されているコンテナーIDでdockerコンテナーを起動します.
[メール保護]:/ home / geekflare $ docker start 09ca6feb6efc
09ca6feb6efc
以下のコマンドを実行して、コンテナが起動したかどうかを確認します.
[メール保護]:/ home / geekflare $ docker ps
コンテナーID画像コマンド作成済みステータスポートNAMES
09ca6feb6efc httpd "httpd-foreground" 8分前アップ3秒80 / tcp suspicious_bell
殺します
Dockerコンテナーをすぐに停止します。 Docker stopコマンドはコンテナーを正常に停止します。これがkillコマンドとstopコマンドの違いです.
[メール保護]:/ home / geekflare $ docker kill 09ca6feb6efc
09ca6feb6efc
以下のコマンドを実行して、コンテナが強制終了されたかどうかを確認します.
[メール保護]:/ home / geekflare $ docker ps
コンテナーID画像コマンド作成済みステータスポートNAMES
コミット
ローカルシステムのコマンドに記載されているコンテナーIDを使用して、新しいDockerイメージを保存します。以下の例では、geekflareがユーザー名で、httpd_imageがイメージ名です。.
[メール保護]:/ home / geekflare $ docker commit 09ca6feb6efc geekflare / httpd_image
sha256:d1933506f4c1686ab1a1ec601b1a03a17b41decbc21d8acd893db090a09bb31c
ログインする
Dockerハブにログインします。ログインするためにDockerハブの資格情報を求められます.
[メール保護]:/ home / geekflare $ docker login
Docker IDでログインして、Docker Hubからイメージをプッシュおよびプルします。 Docker IDがない場合は、https://hub.docker.comにアクセスして作成してください。.
ユーザー名:geekflare
パスワード:
この警告を削除するように資格情報ヘルパーを構成します。見る
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
ログイン成功
押す
dockerhubのコマンドに記載されているイメージ名でdockerイメージをアップロードします.
[メール保護]:/ home / geekflare $ docker push geekflare / httpd_image
プッシュはリポジトリを参照します[docker.io/geekflare/httpd_image]
734d9104a6a2:プッシュ
635721fc6973:library / httpdからマウント
bea448567d6c:library / httpdからマウント
bfaa5f9c3b51:library / httpdからマウント
9d542ac296cc:library / httpdからマウント
d8a33133e477:library / httpdからマウント
最新:ダイジェスト:sha256:3904662761df9d76ef04ddfa5cfab764b85e3eedaf10071cfbe2bf77254679acサイズ:1574
Dockerネットワーク
dockerの次のコマンドは、クラスター内のすべてのネットワークの詳細を一覧表示します.
[メール保護]:/ home / geekflare $ docker network ls
ネットワークID NAME DRIVERスコープ
85083e766f04ブリッジブリッジローカル
f51d1f3379e0 host hostローカル
5e5d9a192c00なしnullローカル
他にもいくつかのdocker networkコマンドがあります.
[メール保護]:/ home / geekflare $ docker network
使用法:docker network COMMAND
ネットワークを管理する
コマンド:
接続コンテナをネットワークに接続します
作成ネットワークを作成する
disconnectコンテナをネットワークから切断します
inspect 1つ以上のネットワークに関する詳細情報を表示する
lsネットワークの一覧表示
プルーン未使用のネットワークをすべて削除します
rm 1つ以上のネットワークを削除する
コマンドの詳細については、「docker network COMMAND –help」を実行してください.
Docker情報
カーネルのバージョン、コンテナーとイメージの数など、システムにインストールされているdockerに関する詳細情報を取得します。.
[メール保護]:/ home / geekflare $ docker info
コンテナ:3
実行中:1
一時停止:0
停止:2
画像:3
サーバーのバージョン:18.09.6
ストレージドライバー:overlay2
バッキングファイルシステム:extfs
d_typeをサポート:true
ネイティブオーバーレイ差分:true
ロギングドライバー:json-file
Cgroupドライバー:cgroupfs
プラグイン:
ボリューム:ローカル
ネットワーク:ブリッジホストmacvlan nullオーバーレイ
ログ:awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
群れ:非アクティブ
ランタイム:runc
デフォルトのランタイム:runc
Init Binary:docker-init
コンテナーバージョン:bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runcバージョン:2b18fe1d885ee5083ef9f0838fee39b62d653e30
初期バージョン:fec3683
セキュリティオプション:
武具
seccomp
プロファイル:デフォルト
カーネルバージョン:4.18.0-25-generic
オペレーティングシステム:Ubuntu 18.10
OSType:linux
アーキテクチャ:x86_64
CPU:1
総メモリ:4.982GiB
名前:geekflare
ID:RBCP:YGAP:QG6H:B6XH:JCT2:DTI5:AYJA:M44Z:ETRP:6TO6:OPAY:KLNJ
Dockerルートディレクトリ:/ var / lib / docker
デバッグモード(クライアント):false
デバッグモード(サーバー):false
ユーザー名:geekflare
レジストリ:https://index.docker.io/v1/
ラベル:
実験的:偽
安全でないレジストリ:
127.0.0.0/8
ライブリストアが有効:false
製品ライセンス:コミュニティエンジン
ファイルをコピーしています
Dockerコンテナーからローカルシステムにファイルをコピーする.
この例では、ID 09ca6feb6efcのDockerコンテナー内のhttpd.pidファイルを/ home / geekflare /にコピーしています。
[メール保護]:/ home / geekflare $ sudo docker cp 09ca6feb6efc:/usr/local/apache2/logs/httpd.pid / home / geekflare /
[sudo] geekflareのパスワード:
以下のコマンドを実行して、ファイルがコピーされたかどうかを確認します.
[メール保護]:/ home / geekflare $ ls
デスクトップドキュメントの例examples.desktop httpd.pid nginx_new.yml nginx.yml
履歴の確認
コマンドで指定されたイメージ名でDockerイメージの履歴を表示します.
g[メール保護]:/ home / geekflare $ docker history httpd
画像作成済み作成済みサイズコメント
ee39f68eb241 2日前/ bin / sh -c#(nop)CMD ["httpd-foreground"] 0B
2日前/ bin / sh -c#(nop)EXPOSE 80 0B
2日前/ bin / sh -c#(nop)COPYファイル:c432ff61c4993ecd…138B
4日前/ bin / sh -c set -eux; savedAptMark ="$(apt-m…49.1MB
4日前/ bin / sh -c#(nop)ENV HTTPD_PATCHES = 0B
4日前/ bin / sh -c#(nop)ENV HTTPD_SHA256 = b4ca9d05…0B
4日前/ bin / sh -c#(nop)ENV HTTPD_VERSION = 2.4.39 0B
4日前/ bin / sh -c set -eux; apt-get update; apt-g…35.4MB
4日前/ bin / sh -c#(nop)WORKDIR / usr / local / apache2 0B
4日前/ bin / sh -c mkdir -p "$ HTTPD_PREFIX" && チョウ…0B
4日前/ bin / sh -c#(nop)ENV PATH = / usr / local / apach…0B
4日前/ bin / sh -c#(nop)ENV HTTPD_PREFIX = / usr / loc…0B
5日前/ bin / sh -c#(nop)CMD ["バッシュ"] 0B
5日前/ bin / sh -c#(nop)ファイルを追加:71ac26257198ecf6a…69.2MB
ログの確認
コマンドに含まれているIDが含まれているDockerコンテナーのログを表示します.
[メール保護]:/ home / geekflare $ docker logs 09ca6feb6efc
AH00558:httpd:172.17.0.2を使用して、サーバーの完全修飾ドメイン名を確実に特定できませんでした。 ‘ServerName’ディレクティブをグローバルに設定して、このメッセージを抑制します
AH00558:httpd:172.17.0.2を使用して、サーバーの完全修飾ドメイン名を確実に特定できませんでした。 ‘ServerName’ディレクティブをグローバルに設定して、このメッセージを抑制します
[Mon Jul 15 14:01:55.400472 2019] [mpm_event:notice] [pid 1:tid 140299791516800] AH00489:Apache / 2.4.39(Unix)configured-通常の操作を再開
[Mon Jul 15 14:01:55.400615 2019] [core:notice] [pid 1:tid 140299791516800] AH00094:Command line: ‘httpd -D FOREGROUND’
[Mon Jul 15 14:08:36.798229 2019] [mpm_event:notice] [pid 1:tid 140299791516800] AH00491:キャッチされたSIGTERM、シャットダウン
AH00558:httpd:172.17.0.2を使用して、サーバーの完全修飾ドメイン名を確実に特定できませんでした。 ‘ServerName’ディレクティブをグローバルに設定して、このメッセージを抑制します
AH00558:httpd:172.17.0.2を使用して、サーバーの完全修飾ドメイン名を確実に特定できませんでした。 ‘ServerName’ディレクティブをグローバルに設定して、このメッセージを抑制します
[Mon Jul 15 14:08:38.259870 2019] [mpm_event:notice] [pid 1:tid 139974087980160] AH00489:Apache / 2.4.39(Unix)configured-通常の操作の再開
[Mon Jul 15 14:08:38.260007 2019] [core:notice] [pid 1:tid 139974087980160] AH00094:Command line: ‘httpd -D FOREGROUND’
[Mon Jul 15 14:09:01.540647 2019] [mpm_event:notice] [pid 1:tid 139974087980160] AH00491:SIGTERMをキャッチし、シャットダウン
AH00558:httpd:172.17.0.2を使用して、サーバーの完全修飾ドメイン名を確実に特定できませんでした。 ‘ServerName’ディレクティブをグローバルに設定して、このメッセージを抑制します
AH00558:httpd:172.17.0.2を使用して、サーバーの完全修飾ドメイン名を確実に特定できませんでした。 ‘ServerName’ディレクティブをグローバルに設定して、このメッセージを抑制します
[Mon Jul 15 14:10:43.782606 2019] [mpm_event:notice] [pid 1:tid 140281554879616] AH00489:Apache / 2.4.39(Unix)configured-通常の操作の再開
[Mon Jul 15 14:10:43.782737 2019] [core:notice] [pid 1:tid 140281554879616] AH00094:コマンドライン: ‘httpd -D FOREGROUND’
AH00558:httpd:172.17.0.2を使用して、サーバーの完全修飾ドメイン名を確実に特定できませんでした。 ‘ServerName’ディレクティブをグローバルに設定して、このメッセージを抑制します
AH00558:httpd:172.17.0.2を使用して、サーバーの完全修飾ドメイン名を確実に特定できませんでした。 ‘ServerName’ディレクティブをグローバルに設定して、このメッセージを抑制します
[Mon Jul 15 14:14:08.270906 2019] [mpm_event:notice] [pid 1:tid 140595254346880] AH00489:Apache / 2.4.39(Unix)configured-通常の操作の再開
[Mon Jul 15 14:14:08.272628 2019] [core:notice] [pid 1:tid 140595254346880] AH00094:Command line: ‘httpd -D FOREGROUND’
画像を検索しています
コマンドに示された名前でdockerhub上のdockerイメージを検索します.
[メール保護]:/ home / geekflare $ docker search hadoop
NAME説明STARS
sequenceiq / hadoop-docker Hadoopを試す簡単な方法611 [OK]
uhopper / hadoop動的構成のHadoopベース画像…98 [OK]
harisekhon / hadoop Apache Hadoop(HDFS +糸、タグ2.2-2.8)54 [OK]
bde2020 / hadoop-namenode hadoopクラスタのHadoopネームノード22 [OK]
kiwenlau / hadoop DockerコンテナでのHadoopクラスタの実行19
izone / hadoop Hadoop 2.8.5エコシステムが完全に分散、Ju…14 [OK]
uhopper / hadoop-namenode Hadoop namenode 9 []
bde2020 / hadoop-datanode hadoopクラスターのHadoopデータノード9 [OK]
特異点/ hadoop Apache Hadoop 8
uhopper / hadoop-datanode Hadoop datanode 7 []
harisekhon / hadoop-dev Apache Hadoop(HDFS +糸)+ Dev Tools + Gi…6 [OK]
構成の更新
コンテナ構成を更新します。すべての更新オプションが表示されます.
[メール保護]:/ home / geekflare $ docker update –help
使用法:docker update [OPTIONS] CONTAINER [CONTAINER …]
1つ以上のコンテナーの構成を更新する
オプション:
–blkio-weight uint16ブロックIO(相対ウェイト)、10〜1000、または0(無効)
(デフォルトは0)
–cpu-period int CPU CFS(Completely Fair Scheduler)の制限期間
–cpu-quota int CPU CFS(Completely Fair Scheduler)の割り当て制限
–cpu-rt-period int CPUのリアルタイム期間をマイクロ秒単位で制限します
–cpu-rt-runtime int CPUリアルタイムランタイムをマイクロ秒で制限
-c、-cpu-shares int CPUシェア(相対ウェイト)
–cpus decimal CPUの数
–cpuset-cpus string実行を許可するCPU(0-3、0、1)
–cpuset-mems文字列実行を許可するMEM(0-3、0、1)
–カーネルメモリバイトカーネルメモリ制限
-m、-メモリバイトメモリ制限
–メモリ予約バイトメモリのソフト制限
–メモリースワップバイトメモリー制限とスワップに等しいスワップ制限:「-1」で無制限のスワップが可能
–再起動文字列コンテナの終了時に適用する再起動ポリシー
以下のコマンドを実行して、DockerコンテナーのCPU構成を、コマンドに記載されているコンテナーIDで更新します.
[メール保護]:/ home / geekflare $ docker update -c 1 2f6fb3381078
2f6fb3381078
ボリュームを作成しています
Dockerコンテナーがデータを格納するために使用するボリュームを作成する.
[メール保護]:/ home / geekflare $ docker volume create
7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0
ボリュームが作成されたかどうかに応じて、以下のコマンドを実行します.
[メール保護]:/ home / geekflare $ docker volume ls
ドライバーボリューム名
ローカル7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0
プラグインのインストール
デバッグ環境を1に設定して、Dockerプラグインvieux / sshfsをインストールします。.
[メール保護]:/ home / geekflare $ docker plugin install vieux / sshfs DEBUG = 1
プラグイン "vieux / sshfs" は次の権限を要求しています:
– ネットワーク:[ホスト]
– マウント:[/ var / lib / docker / plugins /]
– マウント:[]
– デバイス:[/ dev / fuse]
– 機能:[CAP_SYS_ADMIN]
上記の権限を付与しますか? [y / N] y
最新:vieux / sshfsからのプル
52d435ada6a4:ダウンロード完了
ダイジェスト:sha256:1d3c3e42c12138da5ef7873b97f7f32cf99fb6edde75fa4f0bcf9ed277855811
ステータス:vieux / sshfs:latestの新しいイメージをダウンロードしました
インストールされたプラグインvieux / sshfs
以下のコマンドを実行して、Dockerプラグインを一覧表示します。.
[メール保護]:/ home / geekflare $ docker plugin ls
ID名前説明有効
2a32d1fb95af vieux / sshfs:latest Docker用のsshFSプラグインtrue
ログアウト
dockerhubからログアウトする.
[メール保護]:/ home / geekflare $ docker logout
https://index.docker.io/v1/のログイン認証情報を削除する
結論
これで、Dockerコマンドについて十分に理解できたと思います。開発またはラボ環境でこれらのコマンドを試し、練習して学習してください.
DockerとKubernetesの学習に興味がある場合は、こちらをご覧ください。 オンラインコース.
タグ:
Docker