1. ホーム
  2. ドッカー

ドッカー入門

2022-03-03 18:30:15
<パス

式 --Usage: docker [OPTIONS] COMMAND

コンテナ用の自給自足ランタイム

オプションです。
-config string クライアント設定ファイルの場所 (デフォルト "/root/.docker")
-c, --context string デーモンへの接続に使用するコンテキスト名 (DOCKER_HOST 環境変数および "docker context use" で設定したデフォルトコンテキストを上書きします)。
-D, --debug デバッグモードを有効にする。
-H, --host リスト デーモンのソケットに接続します。
-l, --log-level string ログレベルを設定します ("debug"|"info"|"warn "|"error"|"fatal").(デフォルトは"info")
-tls TLSを使用する。-tlsverifyで暗示される。
-tlscacert string このCAによってのみ署名された証明書を信頼する (デフォルト "/root/.docker/ca.pem")
-tlscert string TLS 証明書ファイルへのパス (デフォルト "/root/.docker/cert.pem")
-tlskey string TLS 鍵ファイルへのパス (デフォルト "/root/.docker/key.pem")
-tlsverify TLSを使用し、リモートを検証します。
-v, --version バージョン情報を表示して終了する。

管理コマンドです。
builder ビルドの管理
config Dockerの設定を管理する
コンテナ コンテナを管理する
コンテキスト コンテキストの管理
engine ドッカーエンジンを管理します。
イメージ イメージの管理
ネットワーク ネットワークの管理
node Swarmノードの管理
プラグイン プラグインを管理する
secret Dockerの秘密を管理する
サービス サービスの管理
スタック Dockerスタックを管理する
swarm Swarmの管理
システム Dockerの管理
trust Dockerイメージの信頼性を管理する
ボリューム ボリュームを管理する

コマンドを使用します。
attach 実行中のコンテナにローカルの標準入力、出力、エラーストリームをアタッチする # 現在のシェル下で指定された実行イメージにアタッチする
build Dockerfileからイメージをビルドする # Dockerfile経由でイメージをカスタマイズする
commit コンテナの変更から新しいイメージを作成する # 現在のコンテナを新しいイメージとしてコミットする
cp コンテナとローカルファイルシステム間でファイルやフォルダをコピーする # コンテナからホストへファイルやディレクトリのみをコピーする
create 新しいコンテナを作成する # runと同じですが、起動しません。
diff コンテナのファイルシステム上のファイルやディレクトリに対する変更を検査する # docker コンテナの変更を表示する
events サーバーからリアルタイムイベントを取得する # dockerサービスからコンテナのリアルタイムイベントを取得する
exec 実行中のコンテナでコマンドを実行する # 既存のコンテナからコマンドを実行する
export コンテナのファイルシステムを tar アーカイブとしてエクスポートする # あらゆる場所のコンテナの内容を tar アーカイブとしてストリームする [import に対応]。
history イメージの履歴を表示する # イメージの形成の履歴を表示する
images List images # システムの現在のイメージを一覧表示します。
import tarball から内容をインポートしてファイルシステムイメージを作成する # tarball の内容から新しいファイルシステムイメージを作成する [export に対応] 。

info システム全体の情報を表示する # システム関連の情報を表示する
inspect Dockerオブジェクトの低レベルの情報を返す # コンテナの詳細を表示する
kill 実行中の1つまたは複数のコンテナを強制終了する # 指定したドーカーコンテナを強制終了する
load tar アーカイブからイメージを読み込む or STDIN # tarball からイメージを読み込む [保存に対応].
login Dockerレジストリにログインする # dockerソースサーバーに登録またはログインする
logout Dockerレジストリからログアウトする # 現在のDockerレジストリからログアウトする
logs コンテナのログを取得する # 現在のコンテナのログ情報を出力する
pause 1つまたは複数のコンテナ内のすべてのプロセスを一時停止する # コンテナを一時停止する
port ポートのマッピングを一覧表示する、あるいはコンテナの特定のマッピングを表示する # コンテナの内部ソースポートに対応するマッピングされたポートを表示する
ps コンテナをリストアップする # コンテナをリストアップする
pull an image or a repository from a registry # docker image source server から指定したイメージやリポジトリのイメージを取得します。
push イメージやリポジトリをレジストリにプッシュする # 指定したアワードやリポジトリのイメージを、Docker ソースサーバーにプッシュする
rename コンテナの名前を変更する # rename
restart 1つまたは複数のコンテナを再起動する # restart
rm 1つまたは複数のコンテナを削除する # 1つまたは複数のコンテナを削除する
rmi 1つまたは複数のイメージを削除する # 1つまたは複数のイメージを削除する [コンテナがない場合は削除するイメージを使用し、それ以外の場合は該当するコンテナまたは-fを削除する必要があります] 。
run 新しいコンテナでコマンドを実行する # 新しいコンテナを作成してコマンドを実行する
save 1つあるいは複数のイメージを tar アーカイブに保存 (デフォルトでは STDOUT にストリームされる) # イメージを tarball として保存 [ロードに対応]。
search 検索 Docker Hubで画像を検索 # dockerhubで画像を検索する
start 停止中のコンテナを1つ以上起動する # Start
stats コンテナ(複数可)のリソース使用統計のライブストリームを表示します。
stop 実行中の1つまたは複数のコンテナを停止する # Stop
tag SOURCE_IMAGE を参照するタグ TARGET_IMAGE を作成する。
top コンテナの実行プロセスを表示する
unpause 1つまたは複数のコンテナ内のすべてのプロセスを一時停止解除する
update 1つまたは複数のコンテナの設定を更新する
version Dockerのバージョン情報を表示する
1つまたは複数のコンテナが停止するまでブロックを待機し、それらの終了コードを表示します。

ヘルプコマンド

インフォ

バージョン

ミラーコマンド

式:docker image/search/pull [オプション] image_name

docker image -a # 全てのイメージを表示(中間層を含む)
docker image -q # イメージのIDを表示 ( コマンドを削除してから-qすれば、後で削除できます )
docker image --digest # サマリー情報を表示 (メモと同様)
docker image --no-trunc # 完全な情報を表示する

docker search --no-trunc # 画像の説明を全て表示します。
docker search -s # 指定した値以上のイイネ数を持つミラーをリストアップします。
docker search --automated # 自動ビルドタイプのミラーだけをリストアップします。

ドッカープル

docker rmi -f image_name # 強制的に削除する。
docker rmi -f image1:TAG image2:TAG
docker rmi -f $(docker images -qa) # すべてを削除する

画像がある場合のみ、リポジトリを作成する

docker run [option] IMAGE [command] [ARG...|parameters].

runオプションの紹介です。

-name="Container new name":# コンテナの名前を指定します。
-i: コンテナを対話形式で実行します。通常、-t と一緒に使用します。
-t: コンテナに擬似入力端末を再割り当てします。
-P(大文字):ランダムポートマッピング
-p(lowercase): ポートマッピングの指定, [ host port:docker container port ] # 外部公開ポート : 内部エンティティのポート (mongo 27017)

-d:offspring コンテナを実行し、デーモンを起動するためのIDを返します。

親データボリュームの継承(dockerfile内にデータボリューム自動生成の記述がある場合) ********************************************************************************************************************************************************************

質問:
1. dc01、dc02の変更を削除した後、dc03にアクセスすることは可能ですか?
2. dc02を削除した後、dc03にアクセスできるか。
3. dc03を継承するdc04を新規に作成し、dc03を削除します。
4. 結論 設定情報はコンテナ間で受け渡され、データボリュームのライフサイクルはどのコンテナでも使用されなくなるまで継続する

1` Even if the parent container is deleted, the data is still there


docker run -it --name dc01 image_name
docker run -it --name dc02 --volumes-from dc01 image_name

コンテナコマンド

run [OPTIONS] IMAGE [Commands][ARG] # 新しいコンテナを作って起動する
exit / ctrl + q + p # exit stop exit Second does not stop launch
start # コンテナを起動する
restart # 再起動
stop # shutdown ( シャットダウン )
kill # 強制シャットダウン ( アンプラグド )
rm # remove docker rm $( docker ps -qa ) / docker ps -qa | xargs docker rm ( 左コマンドを右コマンドの xargs に渡すパイプ文字 )

# ********************# 重要
docker run -d centos # バックグラウンドで実行し、すぐに終了します。
dockerメカニズム : バックグラウンドで動作するDockerコンテナは、常にハングするコマンド ( top, tail ) でなければ、自動的に終了するフォアグラウンド・プロセスを持つ必要があります。
インタラクション(-it) バックグラウンド(-d

ログを見る

docker log -f -t --tail Image_id # 出力される前にログを表示します。
1. -t タイムスタンプを追加する
2. -f 最新のログプリントに従う
3. -末尾の数字は、最後のエントリーの数を示します

プロダクションビューの処理

docker top image_id # コンテナプロセスの表示

詳細を見る

docker inspect image_id # コンテナ内部詳細

コンテナを入力する

docker exec -it image_id bashShell # 新しいプロセスを開始する 新しいターミナルを開く
docker attach -it image_id bashShell # コマンドラインを起動する 新しいターミナルを開かない

コンテナからホストへファイルをコピーする

docker cp image_id:path コンテナ内のパスから宛先ホストへのパス

*********************************************** commit ************************************************#

Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Create a new image from a container's changes

Options:
  -a, --author string Author (e.g., "John Hannibal Smith <[email protected]>")
  -c, --change list Apply Dockerfile instruction to the created image
  -m, --message string Commit message
  -p, --pause Pause container during commit (default true)

docker commit -m message -a author images_id To create the target image name:[tag name]


*********************************************** data volume ************************************************#

ローカルとコンテナ内に共有データのフォルダを作成 ローカルでコンテナを開いていなくても、アップロードされたファイルがコンテナ内に表示されます

docker run -it -v ローカルパス:コンテナパス images_id

docker run -it -v ローカルパス:コンテナパス: ro images_id [ permissions ] read-only

*********************************************** Dockerfile ************************************************#

ルール:
1. 各予約語指示は大文字で、少なくとも1つの引数が続いていなければなりません。
2. 命令は上から下へ順番に実行される
3. # はコメント
4. 各実行では、新しいレイヤーに与えるミラーレイヤーを作成し、ミラーをコミットする

FROM # どのベースミラーから継承するか
MAINTAINER # images_message
RUN # コンテナ構築時に実行するコマンド(Linuxではwhichコマンド)。
EXPOSE # 現在のコンテナが公開するポート
WORKDIR # コンテナ作成後、端末がデフォルトで作業ディレクトリにログインすることを指定する、着地点である
ENV #
追加番号
コピー番号
VOLUME # コンテナ作成時に必要なコンテナボリューム
CMD # docker run を入力した後に追加するコマンド
ENTRYPOINT #
ONBUILD #
LABEL # コメント

過去の記録

ドッカーにおけるコンセプト
1. dockerfile ( 画像のソースコード ) [ ソースコード:実行のためにコンピュータに与えられる人間が読めるコンピュータ言語の命令 ]。
2. イメージ画像 ( 実行可能プログラム )
3.コンテナ(実行プロセス)
4. ドッカー(コンパイラ)

dockerの使い方 ( #docker build #docker run #docker pull ) 通常は最初の2つのコマンドだけでドーカを立ち上げることができます。

ドッカーコマンドが行うこと
1. docker build create image ( ソース docker deamon to image )
2. docker run with image run image ( イメージをドッカーコンテナに入れる )
3. docker pull Docker Hunからイメージをダウンロードし、実行する。

dockerでの環境構築~実行プロセス:dockerfileに必要なプログラムや設定を指定し、dockerにdockerfileを渡してコンパイルさせる(docker buildコマンド)。
生成された実行イメージ(docker run コマンドで実行可能)は、イメージ実行時のドッカーコンテナです。

ドッカーのワークフローにおけるいくつかの概念。
1. ドッカーは一般的なCSアーキテクチャ(クライアント・サーバ・パターン)を採用しています。
2. ドッカークライアントは、ユーザーが入力した様々なコマンド( docker build, docker run )を処理する役割を担っています。
3. docker deamonは実際に動作するサーバーです
4.ドッカークライアント、コーカーデーモンが同じマシンで実行できること

ドッカーワークフロー :
1. dockerfile を書き込んだ後、#docker build と入力すると dockerfile が docker"compile" に渡されます。
2. #docker build コマンドを受け取ったクライアントは、それを docker デーモン ( サーバ ) に渡します docker デーモンは dockerfile に基づいて "executable image" を作成します。
3. 3. イメージが利用可能になったら、#docker runコマンドを使用します。docker deamonはコマンドを受信し、特定のイメージを見つけ、それをメモリにロードして実行を開始します。
4. イメージが実行されると、コンテナ
----------
docker pull 実行処理
クライアントが docker deamon にコマンドを送信 docker deamon がコマンドを受信し、それを docker registry に渡してイメージのダウンロード要求を送信する

基盤となるDockerの実装。
1. ドッカーは、Linuxカーネルをベースとしたいくつかの機能を提供します。
2. NameSpaceはリソースを分離する
3. 制御グループは、コンテナ内のプロセスによるシステムリソースの消費を制御します(CPUで実行されるメモリ制限)。

ミラーリング、特殊なファイルシステムとして

dockerの環境によるコマンドの違い
1. ヘルパーコマンド
ドッカーバージョン
ドッカー情報
ドッカー --help
2. 画像イメージコマンド
2.1 docker images - ローカルイメージをすべてリストアップする

-a は中間画像レイヤーを含む
-q 画像IDのみを表示する
2.2 ミラーの検索 docker search [オプション] ミラー名
-s 値を指定する 指定した値以上のコレクションを持つミラーをリストアップします。
-no-trunc ミラー情報を完全に表示する
3.
docker Scrapywebについて学び、クローラーをデプロイしてサーバー上でクロールを行う。
1 まずはローカルマシンでクロールができるかテスト(クロール後)して、データが正しいかどうか確認する
2. 最初にデプロイの方法を学び、後にドーカーバックグラウンドScrapywebバックグラウンドコマンドなどをデプロイする。

Dockerの学習

build: ビルド、つまりイメージを構築する。

ship: 出荷、イメージの出荷、リポジトリやホストからの出荷。

を実行します。実行中のイメージはコンテナである。

build,ship,run と mirror,repository,container は一対一です。

5.1 基本的なdockerコマンド
1. docker pull [オプション] NAME[:TAG].

このコマンドは、リモートリポジトリをドッキングして、ローカルにイメージをプルすることができます。

nameはpullするイメージの名前、:TAGはオプションで、チェックを外すと最新、選択すると指定したバージョンになることを意味します。

options は、pullするパラメータのリストです。

リクエストアドレスを追加しない場合は、ドッカーのウェブサイトに戻り、イメージをプルします。

2. docker images [オプション] [REPOSITORY[:TAG]].

optionsはオプションで、その後にイメージの名前が続きます。これはあまり使われませんが、ローカルのイメージがたくさんあるときに、特定のイメージを見るように指定したい場合があります。

IMAGE IDは実際には64ビットの文字列で、画像を一意に識別しますが、ここでは16ビットだけ表示し、残りは切り捨てています。

  1. docker run [オプション] IMAGE[:TAG] [COMMAND] [ARG...].

IMAGEはイメージの名前です

COMMANDは、実行時に実行されるコマンドです。

ARGは、このコマンドを実行するために必要なパラメータを示します。

cd /scrapy_app/
cd scrapy_app_6818
ポート scrapy_app_6818 のディレクトリにファイルをアップロードしてください。
その後、ドッカーコンテナに入り docker exec -it scrapyd_yyx_6818 /bin/bash
pip intall パッケージ名はこちらへ