1. ホーム
  2. docker

docker共通コマンドのまとめ

2022-02-09 09:52:09

ドッカーのインストールと起動

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 コンテナは起動または実行フェーズです。

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中国語ガイド

その他のリソース

Dockerクイックマニュアル!

Dockerチュートリアル

単一のMySQL Dockerマシンで自動バックアップを設定する方法

- -  https://segmentfault.com/t/docker

GitHub - moby/moby: Mobyプロジェクト - コンテナベースのシステムを組み立てるコンテナエコシステムのための共同プロジェクトです。

Docker - OpenStack

Docker - ArchWiki