baicai

白菜

一个勤奋的代码搬运工!

Dockerのインストールと基本的な使用

Docker の紹介、基本的な概念について#

1.1 Docker は主にイメージとコンテナで構成されています#

イメージ(Image): Docker イメージはテンプレートのようなものであり、ファイルシステムのようなものです。

コンテナ(Container): コンテナはイメージを使用して作成されます。イメージとコンテナはオブジェクト指向のクラスとインスタンスのようなものです。コンテナは作成、起動、停止、削除などが可能です。

レポジトリ(Repository): レポジトリはイメージを格納する場所であり、プライベートレポジトリとパブリックレポジトリに分かれています。Git のようなものです。

1.2 Docker の動作原理#

Docker はクライアント - サーバー構造のシステムであり、Docker のデーモンプロセスがホスト上で実行され、クライアントからの要求をソケットを介して受け付けます。Docker サーバーは Docker クライアントからの命令を実行します。

一. Mac システムでの Docker のインストール#

1.1 homebrew の cask は Docker for Mac をサポートしているため、以下のコマンドで直接インストールできます: brew cask install docker

1.2 または公式ウェブサイトから直接ダウンロードすることもできます: https://download.docker.com/mac/stable/Docker.dmg

1.3 Docker の参考ドキュメント: https://docs.docker.com

1.4 Docker Hub でイメージのソースアドレスを検索できます: https://hub.docker.com

二. Docker の使用方法#

1.1 バージョンの確認#

docker --version

docker-compose --version 

docker-machine --version

1.2 Docker システムの情報を表示(イメージやコンテナの数など)#

docker info

1.3 ヘルプコマンド#

docker help

1.4 CPU の状態を確認#

docker stats

三. Docker の基本的なコマンド#

イメージ関連のコマンド:

1.1 利用可能なイメージのバージョンを表示(nginx を例に)#

docker search nginx

1.2 イメージをダウンロード#

docker pull nginx:latest #(:の後にイメージのバージョンを指定)

1.3 nginx サーバーを実行#

docker run -d -p 81:80 --name webserver nginx

オプション:

#--name webserver :コンテナの名前、コンテナを識別するために使用

#-p 81:80 :ポートマッピング、ローカルの81ポートをコンテナの80ポートにマッピング

#-v ~/nginx/html:/usr/share/nginx/html :データボリュームのマウント(読み取り専用/書き込み可能)、ホストのプロジェクトディレクトリをコンテナのディレクトリにマウントします。デフォルトでは読み取り専用で、コンテナ内では変更できません。

#-d:コンテナをバックグラウンドで実行

#-it:対話的なモードで実行し、コンテナ内の内容を確認

#-P:ランダムなポート

#-e:環境変数の設定

注意:バックグラウンドで実行するためには、前面プロセスが必要です。Docker はアプリケーションがないことを検出すると自動的に停止します。

重要:データボリュームのマウントには、具名 / 匿名 / パス指定のマウントがあります。コンテナのデータボリュームのマウントにより、データの共有、コンテナの永続化、同期操作が可能になります。docker volume コマンドでボリュームの状態を確認できます。volumes-from を使用して複数のコンテナ間でデータを共有することもできます。

1.4 nginx サーバーを停止#

docker stop webserver(コンテナID)

1.5 nginx サーバーを削除#

docker rm webserver

1.6 nginx サーバーを起動 / 再起動#

docker start/restart webserver

1.7 すべてのイメージを一覧表示(リポジトリ名、タグ、イメージ ID、作成日時、使用スペースを含む)#

docker images ls

説明:

REPOSITORY:イメージのリポジトリ

TAG:イメージのタグ

IMAGE ID:イメージのID

CREATED:イメージの作成日時

SIZE:イメージのサイズ

オプション:

-a:すべてのイメージを表示

-q:イメージのIDのみ表示

注意:イメージ ID は一意の識別子であり、1 つのイメージに複数のタグが付けられることがあります。

1.8 イメージ、コンテナ、データボリュームの使用スペースを表示#

docker system df

1.9 イメージを削除#

指定のイメージ:

docker rmi [イメージ名/イメージの短縮ID/イメージの長いID/イメージのハッシュ]

複数のイメージ:

docker rmi イメージID イメージID イメージID

すべてのイメージ:

docker rmi $(docker images -aq)

2.0 docker images ls コマンドを使用して、すべてのリポジトリ名が redis のイメージを削除#

docker  rmi $(docker images ls -q redis)

2.1 イメージの実行履歴を表示#

docker history イメージID

コンテナ関連のコマンド

1.1 コンテナの一覧を表示#

docker ps 

オプション:

#-a:実行中でないコンテナも表示

#-l:最近作成されたコンテナのみ表示

#-n:最近作成されたn個のコンテナを表示

#-q:コンテナのIDのみ表示

1.2 コンテナに入る#

docker exec -it [コンテナ名] /bin/bash

docker atthch コンテナID

違い:docker exec は新しいターミナルでコンテナに入り、操作ができます。docker attach は実行中のコンテナのターミナルに入り、新しいプロセスは起動しません。

1.3 コンテナから退出#

コンテナを停止してホストに戻る

exit 

コンテナを停止せずに退出

ctrl+p+q 

1.4 コンテナを削除#

指定のコンテナ:

docker rm [コンテナID]

複数のコンテナ:

docker rm コンテナID コンテナID コンテナID

すべてのコンテナ:

docker rm $(docker ps -aq)    

docker ps -a -q|xargs docker rm

注意:実行中のコンテナを削除することはできません。実行中のコンテナを削除するには、-f オプションを追加する必要があります。docker rm -f コンテナ ID

1.5 コンテナを起動 / 再起動#

docker start/restart コンテナID

1.6 コンテナを停止 / 強制停止#

docker stop/kill コンテナID

1.7 コンテナのログを表示#

docker logs -f -t --tail 100 コンテナID 

#--tailの後に行数を指定する必要があります

1.8 コンテナ内のプロセス情報を表示#

docker top コンテナID

1.9 コンテナのメタデータを表示(重要なコマンド)#

docker inspect コンテナID

2.0 コンテナからホストにデータをコピー#

docker cp コンテナID:コンテナ内のパス ホストのパス

四. Dockerfile の命令#

FROM:ベースイメージ、すべてはここから始まる

MAINTAINER:イメージの作成者 名前<メールアドレス>

RUN:イメージのビルドに必要なコマンドを実行

ADD:ステップ、コンテンツの追加

WORKDIR:イメージの作業ディレクトリ

VOLUME:マウントするディレクトリ

EXPOST:ポートの設定

CMD:コンテナの起動時に実行するコマンドを指定します。最後のものだけが有効で、置き換えられる可能性があります。

ENTRYPOINT:このコンテナの起動時に実行するコマンドを指定します。コマンドを追加することもできます。

ONBUILD:継承されたDockerfileをビルドする際に実行されます

COPY:ADDと同様にファイルをイメージにコピーします

ENV:ビルド時に環境変数を設定します
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。