-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_DockerCommand
- 戻る(Docker)
- Dockerコマンド
- Dockerファイル
- Dockerレジストリ
- Dockerコンポーズ
Dockerコマンドのチュートリアル的な説明。
以下、Docker for Windowsでの実行結果。
>docker version
Client: Docker Engine - Community
Version: 19.03.5
API version: 1.40
...
-
対話実行
-
hello world
>docker container run ubuntu:latest /bin/echo 'hello world.' -
OS情報を表示してみる。
>docker container run ubuntu:latest uname -a
-
-
BASH実行
-
実行
>docker container run -it --name bash ubuntu /bin/bash root@041a67b9c5dc:/# dir bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr root@041a67b9c5dc:/# exit exit -
再接続のテスト(別のターミナルから)
>docker container run -it --name bash ubuntu /bin/bash ...exitしないで... >docker container attach bash root@041a67b9c5dc:/# exit exit
-
※ 「docker container run」の詳細はコチラ。
-
検索
>docker search ubuntu NAME DESCRIPTION STARS OFFICIAL AUTOMATED ... ... ... ... ...-
構文
docker search [Option] 検索キーワード -
オプション
-
--filter=[ ]: フィルターを使用 -
--limit=n: 結果出力の最大数を指定 -
--no-trunc: 出力内容を省略しない
-
-
>docker system info
-
概要
>docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 26 10 4.966GB 4.168GB (83%) Containers 22 0 3.969kB 3.969kB (100%) Local Volumes 14 0 541.2MB 541.2MB (100%) Build Cache 0 0 0B 0B -
詳細
>docker system df -v Images space usage: REPOSITORY TAG IMAGE ID CREATED SIZE SHARED SIZE UNIQUE SIZE CONTAINERS ... ... ... ... ... ... ... ... Containers space usage: CONTAINER ID IMAGE COMMAND LOCAL VOLUMES SIZE CREATED STATUS NAMES ... ... ... ... ... ... ... ... Local Volumes space usage: VOLUME NAME LINKS SIZE ... ... ... Build cache usage: 0B CACHE ID CACHE TYPE SIZE CREATED LAST USED USAGE SHARED ... ... ... ... ... ... ... -
削減
>docker system prune-
構文
docker system prune [Option] -
オプション
-
--force(-f): 強制削除(確認を省略) -
--all(-a): 未使用のイメージをすべて対象にする
-
-
新しいサブコマンド体系。
-
docker psはdocker container ls(コンテナの一覧) -
docker imagesはdocker image ls(イメージの一覧) -
docker historyはdocker image history(イメージの履歴)
images系のコマンドは、docker image サブコマンドになったらしい。
-
イメージ名
- ImageName
<Docker Hub User Name>/ImageName<Docker Hub Organization Name>/ImageName
-
一覧
IMAGE IDが同じであれば、実体は同じ。>docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE ... ... ... ... ...-
構文
docker image ls [Option] [RepositoryName] -
オプション
-
--all(-a): すべてのイメージ(中間イメージを含む) -
--digests: digestの表示有無 -
--no-trunc: 出力内容を省略しない -
--quiet(-q): ImageIDのみ表示
-
-
-
プル
コチラ。-
構文
-
通常
docker image pull [Option] ImageName[:TagName] -
レジストリ指定
docker image pull [Option] [RegHost[:RegPort]/]ImageName[:TagName] -
レジストリ・パス指定
docker image pull [Option] [RegHost[:RegPort]/]XXXX/YYYY -
ダイジェスト値を使う
docker image pull [Option] ImageName[@HashAlg:HashVal]
-
-
オプション
-
--all-tags(-a): すべてのタグのイメージ -
--disable-content-trust=false: イメージを認証
-
-
イメージ認証の有効化
上記の「--disable-content-trust=false」を設定しなくても認証するようになる。-
Windows
>set DOCKER_CONTENT_TRUST=1 -
Linux
$ export DOCKER_CONTENT_TRUST=1
-
-
-
調査
-
例
-
基本
>docker image inspect ubuntu [... JSON ...] -
OS
>docker image inspect -f="{{ .Os}}" ubuntu [... JSON ...]
-
-
構文
docker image inspect [Option] ImageName [ImageName...] -
オプション
-
--format(-f)="": フォーマット指定
-
-
-
タグ
リネームではなく、別名の追加になる。>docker image tag hello-world daisukenishino77/hello-world2:hogehoge-
構文
docker image tag ImageName1 ImageName2[:TagName] -
オプション
なし。
-
-
削除
>docker image rm daisukenishino77/hello-world2:hogehoge-
構文
docker image rm [Option] ImageName [ImageName...] -
オプション
-
--force(-f): 強制削除 -
--no-prune: 中間イメージを削除しない
-
-
-
削減
>docker image prune-
構文
docker image prune [Option] -
オプション
-
--force(-f): 強制削除(確認を省略) -
--all(-a): 未使用のイメージをすべて対象にする
-
-
-
SaveとLoad
-
Save
>docker image save -o save.tar nginx:latest-
構文
docker image save [Option] [ImageName] -
オプション
保存ファイル名を指定する場合は「-o」を指定する。
-
-
Load
>docker image load -i save.tar-
構文
docker image load [Option] -
オプション
読込ファイル名を指定する場合は「-i」を指定する。
-
-
container系のコマンドは、docker container サブコマンドになったらしい。
-
一覧
>docker container ls(ps) CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ... ... ... ... ... ... ...※ コンテナはimageファイルでもcontainerプロセスでもあるので ls, ps をサポート。
-
構文
docker container ls [Options] -
オプション
-
--all(-a): すべてのコンテナ(停止中を含む) -
--filter(-f): Filter output based on conditions provided -
--format: Pretty-print containers using a Go template -
--last(-n): Show n(-1) last created containers (includes all states) -
--latest(-l): Show the latest created container (includes all states) -
--no-trunc: Don't truncate output -
--quiet(-q): Only display numeric IDs -
--size(-s): Display total file sizes
-
-
-
調査
-
構文
docker container inspect [Option] ContainerName [ContainerName...] -
オプション
-
--format(-f)="": フォーマット指定 -
--size(-s): 合計ファイルサイズを表示
-
-
-
リネーム
docker container rename OldName NewName -
その他の操作と差分確認
-
ファイルのコピー
Docker for Windowsでは、ホストはWindowsになる。>docker cp c:\camera.log bash:/etc/cameralog-
コンテナからホスト
docker cp ContainerID:/FilePath /FilePath -
ホストからコンテナ
docker cp /FilePath ContainerID:/FilePath
-
-
Diffの取得
ファイルのコピーの実行結果のDiffを取る。-
確認(差分)
>docker container diff bash C /etc A /etc/cameralog C /root A /root/.bash_history -
確認(コンテナ内)
>docker container start -i bash root@ff0359cb31e4:/# dir bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr root@ff0359cb31e4:/# cd etc root@ff0359cb31e4:/etc# dir ... cameralog
-
-
>docker image pull nginx
※ 詳しくは、コチラを参照。
- コンテナに入って行うか、
- Dockerファイルを使用して行う。
>docker container run --name www_server -d -p 8080:80 nginx
-
構文
docker container run [Option] ImageName[:Tag|Digest] [OS Command] [Parameter] -
オプション
Docker run リファレンス — Docker-docs-ja ドキュメント
http://docs.docker.jp/engine/reference/run.html-
バックグラウンド実行
- 実行後、削除したり(
--rm)、 - 結果によって再開(
--restart=[])したりできる。
- 実行後、削除したり(
-
ネットワーク設定
- ネットワーク接続
- ポートマッピング(NAPT)
- DNS, HOSTS設定
- ホスト名、IP, MAC設定
-
リソース指定
- CPU
- Memory
- Volume
-
環境設定
- 環境変数
- 読み取り専用
- 作業ディレクトリ
- ユーザ名
-
>docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
beb3d097cd67 ... ... ... ... ... www_server
※ コンテナ識別子としては、「CONTAINER ID」、「NAMES」が使用できる。
-
ポート転送の確認
>docker container port www_server >docker container port beb3d097cd67 80/tcp -> 0.0.0.0:8080 -
ステータス確認
>docker container stats www_server >docker container stats beb3d097cd67 CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS beb3d097cd67 www_server ... ... ... ... -
プロセス確認
>docker container top www_server >docker container top beb3d097cd67 PID USER TIME COMMAND ... ... ... ... -
ログ確認
>docker container logs -t www_server >docker container logs -t beb3d097cd67 2019-12-10T03:13:38.250183500Z 172.17.0.1 - - [10/Dec/2019:03:13:38 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://localhost:8080/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" "-" 2019-12-10T03:13:38.250318000Z 2019/12/10 03:13:38 [error] 6#6: *2 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 172.17.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "localhost:8080", referrer: "http://localhost:8080/"
コンテナの「調査」を参照。
>docker container inspect www_server
>docker container inspect beb3d097cd67
コンテナの停止。
>docker container stop www_server
>docker container stop beb3d097cd67
-
構文
-
ContainerName
docker container stop [Option] ContainerName [ContainerName] -
ContainerID
docker container stop [Option] ContainerID [ContainerID]
-
-
オプション
-
--time(-t) n: 停止までの猶予時間(秒)
-
停止しているコンテナの再開。
>docker container start www_server
>docker container start beb3d097cd67
-
構文
-
ContainerName
docker container start [Option] ContainerName [ContainerName] -
ContainerID
docker container start [Option] ContainerID [ContainerID]
-
-
オプション
-
--attach(-a): STDOUT、STDERR にアタッチ -
--interactive(-i): STDIN にアタッチ
-
コンテナの再起動。
>docker container restart www_server
>docker container restart beb3d097cd67
-
構文
-
ContainerName
docker container restart [Option] ContainerName [ContainerName] -
ContainerID
docker container restart [Option] ContainerID [ContainerID]
-
-
オプション
-
--time(-t) n: 停止までの猶予時間(秒)
-
コンテナの中断・再開。
-
中断
>docker container pause www_server >docker container pause beb3d097cd67-
構文
-
ContainerName
docker container pause ContainerName -
ContainerID
docker container pause ContainerID
-
-
オプション
なし。
-
-
再開
>docker container unpause www_server >docker container unpause beb3d097cd67-
構文
-
ContainerName
docker container unpause ContainerName -
ContainerID
docker container unpause ContainerID
-
-
オプション
なし。
-
コンテナの削除。
>docker container rm www_server
-
構文
-
ContainerName
docker container rm [Option] ContainerName [ContainerName] -
ContainerID
docker container rm [Option] ContainerID [ContainerID]
-
-
オプション
-
--force(-f): 強制削除(実行中のコンテナも削除) -
--volume(-v): コンテナに関連付けられた匿名ボリュームも削除
-
>docker network ls
-
構文
docker network ls [Option] -
オプション
-
--filter=[ ]: フィルターを使用 -
--no-trunc: 出力内容を省略しない -
--quiet(-q): ネットワークIDのみ表示
-
>docker network create --driver=bridge www_network
-
構文
docker network create [Option] NetworkName -
オプション
network create — Docker-docs-ja ドキュメント
http://docs.docker.jp/engine/reference/commandline/network_create.html
-
コンテナ側は調査(コンテナ)を参照。
-
ネットワーク側
>docker network inspect www_network
-
接続
>docker network connect www_network www_server-
構文
-
ContainerName
docker network connect [Option] NetworkName ContainerName -
ContainerID
docker network connect [Option] NetworkName ContainerID
-
-
オプション
-
--ip: ipv4 address -
--ip6: ipv6 address -
--alias: Alias Name -
--link: 他のContainerへのリンク
-
-
-
起動時に接続
>docker container run --name www_server --net=www_network -d -p 8080:80 nginx-
構文
docker container run [Option] ImageName[:Tag|Digest] [OS Command] [Parameter] -
オプション(
--net="")-
none: コンテナにネットワーク機能を付けない -
host: コンテナ内でホスト側ネットワーク・スタックを使用 -
bridge: ブリッジ上でコンテナ用に新しいネットワーク・スタックを作成 -
container:<name|id>: 他のコンテナ用ネットワーク・スタックを再利用 - 「
docker network create」コマンドで作成したNetworkName
-
-
>docker network disconnect www_network www_server
>docker network rm www_network
Dockerファイルを docker build して作成
(カレントディレクトリの場合も「.」を指定)
>docker build -t sample:1.0 .
-
構文
docker build [Option] [Dockerfileの場所] -
オプション
- イメージ名およびタグ名は「
-t」で指定する。 - ファイル名は「
-f」で指定する。
- イメージ名およびタグ名は「
-
ログイン
>docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: daisukenishino77 Password: Login Succeeded-
構文
docker login [Option] [Server] -
オプション
--username(-u)-
--password(-p)
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
-
-
プッシュ
-
Docker Hub
>docker image push daisukenishino77/hello-world2:hogehoge-
構文
docker image push [ImageName[:Tag]] -
オプション
なし。
-
-
Docker Trusted Registry(Dockerレジストリの該当節を参照)
-
タグを以下の様に変更
docker image tag LocalImageName [RegistryのAddress:Port]/ImageName[:hogehoge] -
プッシュ
docker image push [RegistryのAddress:Port]/ImageName[:hogehoge] -
プル
docker image pull [RegistryのAddress:Port]/ImageName[:hogehoge]
-
-
-
ログアウト
>docker logout Removing login credentials for https://index.docker.io/v1/-
構文
docker logout [Server] -
オプション
なし。
-
-
イメージで
>docker run -t -i [ImageName[:Tag]] /bin/bash -
コンテナで
>docker exec -it [ContainerID] /bin/bash
ただし、Dockerfileの方が再現性が高いらしい。
>docker container commit beb3d097cd67 www_server2
-
構文
docker container commit [Option] ContainerID [ImageName[:Tag]] -
オプション
-
--author(-a)="": 作者 -
--message(-m)="": コミット・メッセージ -
--pause(-p)=true: コンテナをコミット時に一時停止(pause)する -
--change(-c)=[]: イメージをコミット時の Dockerfile 命令を追加指定
-
-
Bash
$ sudo docker stop $(sudo docker ps -aq) -
PowerShell
>docker ps -q | %{ docker stop $_ }
-
Bash
$ sudo docker rm -f $(sudo docker ps -aq) -
PowerShell
>docker ps -aq | %{ docker rm $_ }
-
Bash
$ sudo docker rmi $(sudo docker images -q) -
PowerShell
>docker images -q | %{ docker rmi $_ }
- Windows Server 2016 でよく使う Docker コマンド - しばやん雑記
https://blog.shibayan.jp/entry/20161130/1480510392
-
docker | Docker Documentation
https://docs.docker.com/engine/reference/commandline/docker/ -
Docker ドキュメント日本語化プロジェクト — ドキュメント
http://docs.docker.jp/index.html
-
Dockerコマンドメモ
https://qiita.com/curseoff/items/a9e64ad01d673abb6866 -
docker コマンド チートシート
https://qiita.com/voluntas/items/68c1fd04dd3d507d4083 -
docker container / image コマンド新旧比較
https://qiita.com/zembutsu/items/6e1ad18f0d548ce6c266 -
削除
- Docker一括削除コマンドまとめ
https://qiita.com/boiyama/items/9972601ffc240553e1f3 - Dockerイメージとコンテナの削除方法
https://qiita.com/tifa2chan/items/e9aa408244687a63a0ae
- Docker一括削除コマンドまとめ
-
Docker for Windowsでイメージからコンテナを生成/操作してみる
https://qiita.com/fkooo/items/ad7d023b59df71cc9a60
移行メモ
- 元の PukiWiki は同一ページ内に同名の見出し(「調査」「削除」「作成」「一覧」「停止」)が 複数あり、そのうち「コンテナの削除」と「イメージの削除」は アンカ(
#d49250e8)まで重複していたため、 「イメージの一括削除」へのリンクが「コンテナの一括削除」に飛んでいた。 GitHub Wiki では見出しからアンカが自動生成されるため、 見出しに括弧で対象を補ってアンカを一意にし、リンクを正しい節に張り替えた。docker image rmのオプション--no-prunは--no-pruneの誤記のため修正した。docker container lsのオプション--all(-a)の説明が「すべてのイメージ」に なっていたため「すべてのコンテナ(停止中を含む)」に修正した。docker image pullのオプションが-all(-a)(ハイフン1つ)になっていたため、 実際のオプション名である--all-tags(-a)に修正した。- 「ログアウト」の構文が
docker login [Server]になっていたためdocker logout [Server]に修正した。docker container rmの--volume(-v)は説明が空欄だったため、 「コンテナに関連付けられた匿名ボリュームも削除」を補った。docker build/docker image save/docker image loadの構文に 「イメージ名」「保存ファイル名」がオプションと重複して書かれていたため、 オプション側の説明に寄せて整理した。docker container stop/restartの--time(-t)の説明が 「停止時間」「再起動時間」となっていたが、実際は強制終了までの猶予時間のため 「停止までの猶予時間(秒)」とした。- 「Mosquito」は「Mosquitto」の誤記のため修正し、 マイクロソフト系技術情報 Wiki の URL リンクは 移行済みの Mosquitto / Docker for Windows に張り替えた。
- 「再接続のテスト」は同名コンテナを二重起動する手順に読めたため、 別のターミナルから実行する旨を補った。
Tags: 移行, Docker, Dockerコマンド, コンテナ, イメージ, docker container, docker image, docker network
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。