|
|
434行目: |
434行目: |
| *# Dockerデーモンの設定を有効化する。 | | *# Dockerデーモンの設定を有効化する。 |
| *#: <code>sudo systemctl daemon-reload</code> | | *#: <code>sudo systemctl daemon-reload</code> |
| <br><br>
| |
|
| |
| == Dockerコマンド ==
| |
| ==== Dockerイメージの検索 ====
| |
| [https://hub.docker.com/ Docker Hub]からイメージを検索およびダウンロードすることもできる。<br>
| |
| sudo docker search <イメージ名>
| |
| <br>
| |
| ==== Dockerイメージのダウンロード ====
| |
| sudo docker pull <イメージ名>
| |
| <br>
| |
| ==== Dockerイメージの一覧表示 ====
| |
| sudo docker image ls
| |
| または
| |
| sudo docker image ls -a または sudo docker image ls --all
| |
| <br>
| |
| ==== Dockerイメージの削除 ====
| |
| <イメージ名>は上述の"イメージの一覧表示"で確認できる。<br>
| |
| <code>-f</code>オプションを付加することにより、使用中のイメージおよびコンテナであっても削除することができる。<br>
| |
| sudo docker rmi -f <イメージ名>
| |
| <br>
| |
| ==== Dockerイメージの実行 ====
| |
| <イメージ名>はイメージの名前であり、<COMMAND>はDockerコンテナ上で実行するコマンドである。<br>
| |
| sudo docker run <イメージ名> <COMMAND>
| |
| <br>
| |
| 実行コマンドが、/bin/bashのような対話型(インタラクティブ)なコマンドの場合は、<code>-it</code>オプションを指定する。<br>
| |
| <code>-i</code>オプションはコンテナの標準入力を有効化、<code>-t</code>オプションはttyを有効化するためのオプションである。<br>
| |
| sudo docker run –it <イメージ名> /bin/bash
| |
| <br>
| |
| detachedモード(バックグラウンドモード)で実行する場合は、<code>–d</code>オプションを指定する。<br>
| |
| sudo docker run -d dockersamples/static-site
| |
| <br>
| |
| ==== 実行中のDockerコンテナの一覧表示 ====
| |
| sudo docker ps
| |
| または
| |
| sudo docker container ls
| |
| <br>
| |
| ==== 全てのDockerコンテナの一覧表示 ====
| |
| sudo docker ps -a
| |
| または
| |
| sudo docker ps --all
| |
| または
| |
| sudo docker container ls –a
| |
| または
| |
| sudo docker container ls –-all
| |
| <br>
| |
| ==== Dockerコンテナの削除 ====
| |
| <CONTAINER ID>を指定する。<br>
| |
| <CONTAINER ID>は上述の"コンテナの一覧表示"で確認できる。<br>
| |
| sudo docker rm <CONTAINER ID>
| |
| または
| |
| sudo docker countainer rm <CONTAINER ID>
| |
| <br>
| |
| ==== Dockerコンテナの停止 ====
| |
| sudo docker stop <CONTAINER ID>
| |
| sudo docker container stop <CONTAINER ID>
| |
| <br>
| |
| コンテナの停止と削除を同時に実施する。<br>
| |
| sudo docker rm –f <CONTAINER ID>
| |
| sudo docker container rm -f <CONTAINER ID>
| |
| <br>
| |
| ==== Dockerコンテナに任意の名前を付ける ====
| |
| これは、<CONTAINER ID>の代わりに指定できる。<br>
| |
| sudo docker run --name <任意のコンテナ名> <イメージ名>
| |
| <br>
| |
| ==== ポートマッピング ====
| |
| <code>run</code>コマンドにおいて、<code>-p</code>オプションを使用すると、コンテナのポートをマッピングするホストのポートを指定できる。<br>
| |
| 以下の例では、ホストPCの12345番ポートをコンテナの80番ポートにマッピングしている。<br>
| |
| sudo docker run -it -p 12345:80 <イメージ名> /bin/bash
| |
| <br>
| |
| <code>-P</code>オプションを指定すると、コンテナが使うポートがランダムにホストのポートにマッピングされる。<br>
| |
| sudo docker run -it -P <イメージ名>
| |
| <br>
| |
| どのポートにマッピングされたかは、<code>sudo docker ps</code>コマンドまたは<code>sudo docker port <CONTAINER ID></code>で確認できる。<br>
| |
| sudo docker port <CONTAINER ID>
| |
|
| |
| # 出力例
| |
| 443/tcp -> 0.0.0.0:32770
| |
| 80/tcp -> 0.0.0.0:32771
| |
| <br>
| |
| ==== ディレクトリの共有 ====
| |
| <code>run</code>コマンドにおいて、<code>-v</code>オプションまたは<code>–-volume</code>オプションを指定することにより、<br>
| |
| コンテナ内のボリュームとローカル環境のボリュームを接続することができる。<br>
| |
| sudo docker run -d -p 12345:80 -v /home/user/htdocs:/var/www/html <イメージ名>
| |
| <br>
| |
| ==== バックグラウンドでの実行 ====
| |
| <code>run</code>コマンドにおいて、<code>-d</code>オプションまたは<code>-–detach</code>を指定することにより、コンテナをバックグラウンドを実行することができる。<br>
| |
| 実行直後にコンテナIDが表示される。<br>
| |
| sudo docker run -d <イメージ名>
| |
| <br>
| |
|
| |
| ==== DockerコンテナからDockerイメージを作成する ====
| |
| まず、Dockerコンテナを停止する。<br>
| |
| sudo docker container stop <CONTAINER IDまたはコンテナ名>
| |
| <br>
| |
| 次に、停止したDockerコンテナからDockerイメージを作成する。<br>
| |
| sudo docker commit <CONTAINER IDまたはコンテナ名> <イメージのリポジトリ名>:<イメージのタグ名>
| |
| <br>
| |
| 作成したDcockerイメージを確認する。<br>
| |
| sudo docker images
| |
| <br>
| |
| 作成したDockerイメージからDockerコンテナを作成する。<br>
| |
| sudo docker run -it --name <CONTAINER IDまたはコンテナ名> <イメージのリポジトリ名>:<イメージのタグ名> /bin/bash
| |
| <br>
| |
| ==== Dokerイメージのエクスポートおよびインポート ====
| |
| まず、Dockerコンテナを停止する。<br>
| |
| sudo docker container stop <Dockerコンテナ名またはDockerコンテナのID名>
| |
| # または
| |
| sudo docker stop <Dockerコンテナ名またはDockerコンテナのID名>
| |
| <br>
| |
| 必要であれば、Dockerコンテナでの変更をDockerイメージに反映する。<br>
| |
| sudo docker commit <Dockerコンテナ名またはDockerコンテナのID名> <イメージのリポジトリ名>:<イメージのタグ名>
| |
| <br>
| |
| Dockerイメージに付随するレイヤの情報(メタ情報)等を含めたイメージを保存する。<br>
| |
| sudo docker save <オプション> <イメージ名> > <保存するファイル名>
| |
| # または
| |
| sudo docker save <オプション> <イメージ名> -o <保存するファイル名>
| |
|
| |
| # 例. Dockerイメージのsample-imageをsample-image.tarとして保存する
| |
| sudo docker save sample-image > sample-image.tar
| |
| <br>
| |
| エクスポートしたDockerイメージファイルをインポートする場合は、<code>load</code>コマンドを使用する。<br>
| |
| sudo docker load < <エクスポートしたDockerのファイル名>
| |
|
| |
| # 例. エクスポートしたファイルであるsample-image.tarファイルをインポートする
| |
| sudo docker load < sample-image.tar
| |
| <br>
| |
| ==== Dokerコンテナのエクスポートおよびインポート ====
| |
| まず、Dockerコンテナを停止する。<br>
| |
| sudo docker container stop <コンテナ名またはコンテナID>
| |
| # または
| |
| sudo docker stop <コンテナ名またはコンテナID>
| |
| <br>
| |
| 必要であれば、Dockerコンテナでの変更をDockerイメージに反映する。<br>
| |
| sudo docker commit <Dockerコンテナ名またはDockerコンテナのID名> <イメージのリポジトリ名>:<イメージのタグ名>
| |
| <br>
| |
| コンテナのメタ情報等は保存されず、ファイルシステムのコピーがそのまま保存される。<br>
| |
| sudo docker export <オプション> <コンテナ名またはコンテナID> > <保存するファイル名>
| |
|
| |
| # 例. Dockerコンテナのsample-containerをsample-container.tarとして保存する
| |
| sudo docker export sample-container > sample-container.tar
| |
| <br>
| |
| エクスポートしたDockerコンテナファイルをインポートする場合は、<code>import</code>コマンドを使用する。<br>
| |
| sudo docker import <エクスポートしたコンテナファイル名> - <リポジトリ名>:<タグ名>
| |
|
| |
| # 例. エクスポートしたsample-container.tarファイルをインポートする
| |
| sudo docker import < sample-container.tar - sample-container:latest
| |
| # または
| |
| cat sample-container.tar | sudo docker import - sample-container:latest
| |
| <br><br> | | <br><br> |
|
| |
|