docker共通コマンドのまとめ
ドッカーのインストールと起動
dockerのインストール
yum install docker-ce
dockerを起動します。
systemctl start docker
dockerを停止します。
systemctl stop docker
dockerを再起動します。
systemctl restart docker
dockerのステータスを表示する。
systemctl status docker
起動します。
systemctl enable docker
ドッカーサマリー情報を見る
docker info
dockerのヘルプドキュメントを見る
docker --help
コンテナ画像関連
停止、再起動、コミット後のコンテナは、source /etc/sourceのような環境変数で再読み込みする必要があることに注意してください。
dockerコンテナをバックグラウンドで実行した後、-dパラメータを指定して実行します。
1. ドッカーコンテナの起動
docker run -d -i -t <imageID> /bin/bash
上記のコマンドは、いくつかのコマンドを実行するとエラーが返ってきました。 D-Bus接続の取得に失敗しました。操作は許可されていません
次のコマンドで開始できます。
docker run -d -i -t <imageID> /usr/sbin/init
この時点で、docker psコマンドを使用し、バックグラウンドで動作しているプログラムを知ることができるのです。
2. ドッカーコンテナへのアクセスは?
(1) docker attachコマンドを使用する
を使用しています。
docker attach db3 or docker attach d48b21a7e439
db3はバックグラウンドコンテナの名前、d48b21a7e439はコンテナのプロセスID CONTAINER ID
そして、このコンテナのsshインターフェースにアクセスします。
しかし、接続を終了したり、exitコマンドを使用したりすると、すぐにコンテナがバックグラウンドでの実行を終了してしまうという欠点がある
(2) docker execコマンドを使用する
このコマンドは、一般的に次のように使用されるexitコマンドを使用した後、バックグラウンドで終了しません。
docker exec -it db3 /bin/sh or docker exec -it d48b21a7e439 /bin/sh
db3はバックグラウンドコンテナの名前、d48b21a7e439はコンテナのプロセスID CONTAINER ID
/bin/sh は固定書き込み
また、このコンテナにアクセスすることができます。
3. シャットダウン スタートアップ 再起動
docker stop container id
docker start container id
docker restart container id
閉じたコンテナを含む、すべてのコンテナを表示する
docker ps -a
4. dockerが新しいイメージをコミットする
docker commit afcaf46e8305(container id) centos-vim(custom name)
1. すべてのコンテナを停止して、その中のイメージを削除できるようにします。
docker stop $(docker ps -a -q)
すべてのコンテナを削除する場合は、別のコマンドを追加してください。
docker rm $(docker ps -a -q)
2. 現在、どのようなイメージが利用可能かを見る
ドッカーイメージ
3. イメージの削除。削除する人をイメージのIDで指定する。
docker rmi <image id>
タグ付けされていない画像、つまりidが <None> の画像を削除するには、以下のようにします。
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
すべてのイメージを削除する場合
docker rmi $(docker images -q)
dockerを管理するためのportainerをインストールする
1. 現在のportainerイメージを照会し、より高い開始値を持つものを選択します。
コマンドを実行します。
docker search portainer
2. 指定されたポーテナーイメージをダウンロードする
コマンドを実行します。
docker pull portainer/portainer
3. 今回は、スタンドアロン版のみ、以下のコマンドでデプロイします。
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --name prtainer-test portainer/portainer
以下のようになります。
パラメータの説明です。
-d: バックグラウンドで動作しているコンテナ。
-p 9000:9000 : ホストのポート 9000 がコンテナのポート 9000 にマッピングされました。
restart フラグは、コンテナの終了コードをチェックし、それに応じてコンテナを再起動するかどうかを決定します。デフォルトでは、再起動はしません。
-restart=always: コンテナを自動的に再起動する。
-v /var/run/docker.sock:/var/run/docker.sock : ホストのDockerデーモンがデフォルトでリッスンするUnixドメインソケットをコンテナにマウントします。
-v portainer_data:/data : コンテナ/data ディレクトリにホスト portainer_data データボリュームをマウントする。
-name prtainer-test : コンテナにportainer-testという名前をつけます。
以下はオンラインです。
この操作はubuntu 17.01、dockerのバージョンは17.10.0-ce、docker-composeは1.17.1で行われました。
ドッカーはなぜ存在するのか
- dokcerを使用してローカル開発とビルドを高速化することで、開発者はDockerコンテナを構築、実行、共有することができ、開発環境でビルドした後、テスト環境、そして最終的には本番環境に簡単にコミットすることができます。
- スタンドアロンサービスやアプリケーションを異なる環境で動作させ、同じ結果を得ることができること。
- dockerでテスト用の隔離された環境を作成する
- docker を使用すると、開発者は最初から本番環境でテストするのではなく、まずローカルでテストするために複雑なプログラムを構築することができます。
ドッカーコンセプト
- Dockerの共通ドキュメントです。 Docker ドキュメント|Docker Documentation
- ドッカー ミラー : ユーザーは、コンテナの「ソースコード」として使用でき、共有、保存、更新が簡単にできるほど小さいミラーをベースにコンテナを実行します。
- レジストリ。Dockerは、ユーザーが作成したイメージを保存するためにレジストリを使用し、これは公開と非公開があります。
o DockerはDocker Hubと呼ばれるパブリックレジストリを運営しており、私たちはそこでアカウントを取得し、イメージを共有したり保存したりすることができます。
o Docker Hubに自分だけのイメージを保存したり、自分だけのレジストリをセットアップすることができます。
- Dockerコンテナ:アプリケーションやサービスのパッケージング を作成し、それを コンテナはイメージに基づいて起動し、1つまたは複数のプロセスをコンテナ内で実行することができます。
o イメージはDockerライフサイクルのビルドまたはパッケージングフェーズです。
o コンテナは起動または実行フェーズです。
o
dockerを使用するためのコマンド
1 ドッカーコマンドの紹介
ドッカー --help
管理用コマンドです。
コンテナ コンテナを管理する
イメージ イメージの管理
ネットワーク ネットワークの管理
コマンド
アタッチが実行中のコンテナに介入する
Dockerfileに対してイメージをビルドします。
コンテナへの変更に基づき、新しいイメージを作成します。
cp ローカルファイルシステムとコンテナ間のファイル/フォルダのコピー
create 新しいコンテナを作成します
exec コンテナ内でコマンドを実行する
images はイメージの一覧です。
実行中のコンテナを強制終了します。
logs コンテナのログを取得する
pause 1つまたは複数のコンテナの全プロセスを一時停止する。
ps はすべてのコンテナをリストアップします。
pull ミラーやリポジトリをレジストリにプルします。
push ミラーやリポジトリをレジストリにプッシュする
rename コンテナの名前を変更する
restart 1つまたは複数のコンテナを再起動する
rm 1つまたは複数のコンテナを削除する
rmi 1つまたは複数のミラーを削除します。
run 新しいコンテナでコマンドを実行する
search Docker Hubにあるイメージを検索する
start は、停止している 1 つまたは複数のコンテナを起動します。
stats はコンテナのリソースの使用状況をライブで表示します。
停止は、1つまたは複数の実行中のコンテナを停止します。
タグはイメージのための新しいタグを作成します。
top はコンテナ内の全プロセスを表示します
unpause 1つまたは複数のコンテナで一時停止しているすべてのプロセスを再開します。
2. 機能パラメータのより詳細な設定
<テーブルパラメータ
説明
--api-enable-cors=false
リモートAPIコールのCORSヘッダをオープンします。このインターフェーススイッチは、セカンダリ開放された
二次開発を行いたい上位レイヤーのアプリケーションのために。
-b、-bridge=""。
既存のブリッジデバイスをDockerコンテナにマウントします。なお、none
を使用して、コンテナ内のネットワークを無効にします。
-bip=""です。
CIDRアドレスを使用して、ネットワークブリッジのIPを設定します。このパラメータと-bは一緒に使用できないことに注意してください。
-D, --debug=false
デバッグモードをオンにします。例:docker -d -D
-d, --daemon=false
Daemon モードを有効にします。
-dns=[]です。
コンテナにDNSサーバを使用するように強制する。例:docker -d --dns 8.8.8.8
-dns-search=[]です。
指定された DNS を使用してドメイン名を検索するよう、コンテナに強制します。例:docker -d --dns-search
example.com
-e, --exec-driver="native"
指定されたランタイムドライバをコンテナが使用するように強制します。例:docker -d -e lxc
-G, --group="docker"
バックグラウンドランモードで、指定されたグループを適切なunixソケットに割り当てます。
なお、このパラメータ--groupに空文字列を与えると、グループ情報が削除される。
-g, --graph="/var/lib/docker"
Dockerランタイムのルートディレクトリを設定する
-H, --host=[].
バックグラウンドモードでのソケットバインディングを指定します。
tcp://host:port, unix:///path/to/socket, fd://* または
fd://socketfd. 例) $ docker -H tcp://0.0.0.0:2375 ps
または $ export DOCKER_HOST="tcp://0.0.0.0:2375" $ docker ps
--icc=true
インラインコンテナの通信を有効にする。
--ip="0.0.0.0"
コンテナを IP にバインドする際に使用するデフォルトの IP アドレス。
--ip-forward=true
コンテナのnet.ipv4.ip_forwardを起動します。
--iptables=true
Dockerコンテナのカスタムiptableルールを起動します。
-mtu=0
コンテナネットワークのMTU値を設定します。このパラメータが存在しない場合は、デフォルトルートのMTUを選択します。
デフォルトルートがない場合は、一定値の1500に設定します。
-p, --pidfile="/var/run/docker.pid"
バックグラウンドプロセスのPIDファイルへのパス。
-r, --restart=true
以前に実行されていたコンテナを再起動します。
-s, --storage-driver=""
指定されたストレージドライバでコンテナを実行するように強制します(例:devicemapper を指定する)。
docker -d -s devicemapper で実行できます。
-- selinux -enabled=false
selinuxのサポートを有効にする
--storage-opt=[]
ストレージドライバのパラメータを設定する
--tls=false
TLS認証スイッチを有効にする
--tlscacert="/Users/dxiao/.docker/ca.pem"
CA認証済み証明書ファイルへのパス
--tlscert="/Users/dxiao/.docker/cert.pem"
TLS証明書ファイルのパス
--tlskey="/Users/dxiao/.docker/key.pem"
TLSキーファイルへのパス
--tlsverify=false
TLSを使用し、クライアントと通信するバックグラウンドプロセスの認証を行う。
-v, --version=false
バージョン情報を表示する
*注意:[]付きのスタートパラメータは複数回指定可能です、例えば
docker run -a stdin -a stdout -a stderr -i -t ubuntu /bin/bash
ドッカーベーシック
- システムカーネルを見る
- uname -r
- dockerイメージの起動
- systemctl start docker
- 3.dockerのバージョンを確認する
- ドッカーベリゾン
- 4.Dockerシステムに関する情報を表示する
- ドッカー情報
dockerイメージの操作
1. イメージの取得
ドッカー検索 image-name
2. イメージのダウンロード
docker pull image-name
3. イメージのリストアップ
ドッカーイメージ
4. 1つまたは複数のイメージを削除する
docker rmi イメージ名
5. イメージの履歴を表示する
ドッカー履歴 image-name
6. コンテナからのイメージ作成
* すでに作成されているコンテナからイメージを更新してコミットする * Dockerfileコマンドを使用して新しいイメージを作成する 以下は、既存のコンテナから新しいイメージを作成します。
docker commit -m="最初の画像" -a="keke" 7a15f99695c0 keke/unbantu:17.10.0をコミットします。
上記コマンドパラメーターの説明。
* -m 投稿の説明情報
* -a ミラーの作者を指定する
* 7a15f99695c0 これはミラー ID ではなく、コンテナ ID であることを忘れないでください。
* keke/unbantu:17.10.0 はターゲットイメージ名を作成しました。
1. の中に Docker アカウントを登録し、公開されたイメージはすべて このページでは 表示する
2. 2. 上記で作成したunbantuのミラーを取り出し、新しい名前unbantu-testを付けます。
docker tag keke/unbantu:17.10.0 keke/unbantu-test:lastest
1. dockerにログイン
ドッカーログイン
4. unbantuイメージのアップロード
docker push keke/unbantu-test:lastest
コンテナを起動する
dockerコンテナは、サンドボックスの中で実行されるプロセスと考えることができます。このサンドボックスには、ファイルシステム、システムライブラリ、シェル環境など、プロセスの実行に必要なリソースが含まれています。しかし、このサンドボックスは、デフォルトでは何のプログラムも実行しない。あるコンテナを起動するためには、サンドボックス内でプロセスを実行する必要があります。このプロセスはそのコンテナ内の唯一のプロセスなので、そのプロセスが終了すると、コンテナも完全に停止します。
1. コンテナへの新しいプログラムのインストール
docker run image-name apt-get install -y -name
2. コンテナ内で "echo" コマンドを実行し、 "hello word" を出力してください。
docker run image-name echo "hello word"
3. コンテナに対話的に入る
docker run -i -t image_name /bin/bash
注)apt-getコマンドは-yパラメータを付けて実行します。y 引数を指定しない場合、apt-get コマンドは対話型モードになり、確認のためのコマンド入力を要求しますが、これは docker 環境では不可能です。apt-get はコマンド実行後停止しますが、コンテナへの変更は失われません。
コンテナを見る
1. 現在稼働中のコンテナをすべてリストアップ
ドッカーps
2. すべてのコンテナをリストアップ
docker ps -a
3. 最近起動したコンテナをリストアップ
docker ps -l
4. コンテナへの変更の保存 コンテナに変更を加えた後(コンテナ内でコマンドを実行)、コンテナへの変更を保存することで、次回からは保存後の最新の状態からコンテナを実行することができます。
1. a, --author="" Author; -m, --message="" Commit message
ドッカーコミットID new-image-name
5. コンテナの運用
1. すべてのコンテナを削除する
docker rm `docker ps -a -q` を実行します。
2. f, --force=false; -l, --link=false コンテナではなく、指定されたリンクを削除する; -v, --volumes=false コンテナに関連付けられたボリュームを削除する
docker rm 名前/ID
3. コンテナの停止、起動、終了
docker stop 名前/ID
ドッカースタート 名前/ID
docker kill 名前/ID
f, --follow=false ログ出力を追いかける; -t, --timestamps=false タイムスタンプを表示する。
docker logs 名前/ID
5. コンテナ内のファイルやディレクトリが変更されたものをリストアップします。リストには、A added、D deleted、C changedの3種類のイベントが表示されます。
docker diff 名前/ID
6. 実行中のコンテナ内のプロセスに関する情報を表示する
docker top 名前/ID
7. コンテナ内のファイル/ディレクトリをローカルパスにコピーします。
docker cp 名前:/container-path to-path
docker cp ID:/container-path to-path
8. 実行中のコンテナの再起動 -t, --time=10 コンテナを殺す前に停止を試みる秒数, Default=10
docker restart 名前/ID
9. 実行中のコンテナにアタッチする; --no-stdin=false stdinをアタッチしない; --sig-proxy=true 受信したシグナルを全てプロセスにプロキシする。
docker attach ID # 再起動して対話型セッションシェルを実行する
注意:attachコマンドは、実行中のコンテナを表示したり、影響を与えたりすることができます。同じコンテナを同時にアタッチすることができます。また、CTRL-Cから、コンテナからデタッチすることができます。
ミラーの保存と読み込み
あるマシンから別のマシンへイメージを移行する必要がある場合、イメージの保存とロードが必要です。
1. イメージをtarballに保存する -o, --output="" ファイルに書き込む
docker save image-name -o file-path
2. i, --input="" tar アーカイブファイルから読み込む。
docker load -i ファイル-パス
3. マシンAからマシンBへコピー
docker save image-name > /home/keke/main.tar
*main.tarをマシンAへscpでコピーします。
docker load < /home/keke/main.tar
ログイン
1. e, --email="" メールアドレス; -p, --password="" パスワード; -u, --username="" ユーザー名; レジストリサーバーへのログイン
ドッカーログイン
dockerイメージの公開
docker push new-image-name
ビルドイメージ (Dockerfile + docker build)
FROM ...
RUN ...
# コンテナ内のプログラムがコンテナの指定されたポートを使用することを指定します。
# docker run -p と連携する
EXPOSE ...
- RUN: イメージのビルド時に実行するコマンドを指定します。
- CMD: コンテナ起動時に実行するコマンドを指定します。
- ENTRYPOINT:CMDと同じですが、docker run -tで上書きされません。
- WORKDIR: CMD/ENTRYPOINTはこのディレクトリで実行されます。
- ボリューム
- 追加
- コピー
ドッカー履歴イメージ名
1. 新しいイメージからコンテナを起動する
docker run -d -p 4000:80 --name [name] #コンテナのポート 80 にマップするために Dokcer ホストの特定のポートを指定することができます。
ガーディアンコンテナ
docker run -d container-name #デーモンコンテナの作成
docker top container-name #コンテナ内のプロセスを表示します。
docker exec container-name touch a.txt #コンテナ内のプロセスを実行します。
docker stop container-name #コンテナを停止する
ドッカーについて
この記事が良いと思ったら、☆を付けてください もしまだ問題があるようなら、私のWeChatのSen0676を追加して、githubから来たと書いて、goグループに入って詳細なコミュニケーションをとってください
参考文献
公式英語リソース
- Dockerの公式サイトです。 http://www.docker.com
- Docker windowsをはじめよう。 リダイレクトする...
- Docker Linuxの入門編。 リダイレクトする...
- Docker macの入門編。 リダイレクトする...
- Dockerのユーザーガイドラインです。 リダイレクトする...
- Dockerの公式ブログです。 Dockerブログ|アプリ開発ニュース&ソートリーダーシップ|Docker
- Docker Hubです。 ドッカーハブ
- Dockerのオープンソース。 オープンソースコンテナプロジェクトコラボレーション|Docker
中国語リソース
- Docker中国語サイト。 http://www.docker.org.cn
- Dockerの中国語ドキュメントです。 Docker中国語版ドキュメント Dockerの概要 - DockerInfo
- Dockerのインストールマニュアルです。 Dockerがサポートするインストール方法 - Dockerインストールマニュアル - docker中国語コミュニティ
- 1時間のDockerチュートリアル: https://blog.csphere.cn/archives/22
- Docker中国語ガイドです。 インストール|Docker中国語ガイド
その他のリソース
- 単一のMySQL Dockerマシンで自動バックアップを設定する方法
- - https://segmentfault.com/t/docker
- GitHub - moby/moby: Mobyプロジェクト - コンテナベースのシステムを組み立てるコンテナエコシステムのための共同プロジェクトです。
関連
-
[解決済み】apt-get でインストールしても docker コマンドが見つからない。
-
[解決済み】D-Bus接続の取得に失敗しました。操作が許可されていません
-
[解決済み] Ansibleタスクのタイムアウトの最大長
-
[解決済み] ドッカーコンテナで接続が拒否される
-
[解決済み] docker ERROR: 不明なブロブ
-
[解決済み] 複数のディレクトリを1つのコマンドでコピーする
-
[解決済み] Docker - デーモンからのエラー応答:クライアントはサーバーよりも新しいです。
-
docker サーバーが HTTPS クライアントに HTTP 応答を返した
-
docker上で動作するphpからmysqlへの接続の解決策、表示(HY000/2002)。接続が拒否されました
-
httpコード中にdocker registry apiのインタラクションを呼び出す コード詳細
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Dockerエラー:無効な参照形式:リポジトリ名は小文字でなければならない
-
[解決済み】Docker - 0.0.0.0:4000 のバインドに失敗: ポートはすでに割り当てられています。
-
[解決済み】docker: ドライバがエンドポイントウェブサーバの外部接続のプログラミングに失敗しました。
-
[解決済み] Dockerのエラーです。Cannot start service ...: ネットワーク 7808732465bd529e6f20e4071115218b2826f198f8cb10c3899de527c3b637e6 が見つかりませんでした。
-
[解決済み] Dockerfileで-hオプションのように特定のホスト名を扱う方法
-
ImportError: libGL.so.1: cannot open shared object file: No such file or directory--docker in-container problem reported as a error.
-
docker 環境に opencv をインストールします ImportError: libGL.so.1: cannot open shared object file: そのようなファイルやディレクトリはありません
-
docker encountered problem 4: yaml: line 1: mapping values are not allowed in this context.
-
minttyを使用している場合は、コマンドの前に'winpty'を付けてみてください。
-
bashでの解決方法 : docker :コマンドが見つかりません。