「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
Dockerコマンドのチュートリアル的な説明。
以下、Docker for Windowsでの実行結果。
>docker version Client: Docker Engine - Community Version: 19.03.5 API version: 1.40 ...
>docker container run ubuntu:latest /bin/echo 'hello world.'
>docker container run ubuntu:latest uname -a
>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] 検索キーワード
>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]
新しいサブコマンド体系
images系のコマンドは、docker imageサブコマンドになったらしい。
>docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE ... ... ... ... ...
docker image ls [Option] [RepositoryName]
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]
>set DOCKER_CONTENT_TRUST=1
$export DOCKER_CONTENT_TRUST=1
>docker image inspect ubuntu [... JSON ...]
>docker image inspect -f="{{ .Os}}" ubuntu [... JSON ...]
docker image inspect [Option] ImageName [ImageName...]
>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...]
>docker image prune
docker image prune [Option]
>docker image save -o save.tar nginx:latest
>docker image save [Option] 保存ファイル名 [ImageName]
>docker image load -i save.tar
>docker image load [Option] 保存ファイル名
container系のコマンドは、docker containerサブコマンドになったらしい。
>docker container ls(ps) CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ... ... ... ... ... ... ...
※ コンテナはimageファイルでもcontainerプロセスでもあるのでls, psをサポート。
docker container ls [Options]
docker container inspect [Option] ContainerName [ContainerName...]
docker container rename OldName NewName
>docker cp c:\camera.log bash:/etc/cameralog
docker cp ContainerID:/FilePath /FilePath
docker cp /FilePath ContainerID:/FilePath
>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 container run --name www_server -d -p 8080:80 nginx
docker container run [Option] ImageName[:Tag|Digest] [OS Command] [Parameter]
>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
docker container stop [Option] ContainerName [ContainerName]
docker container stop [Option] ContainerID [ContainerID]
停止しているコンテナの再開。
>docker container start www_server >docker container start beb3d097cd67
docker container start [Option] ContainerName [ContainerName]
docker container start [Option] ContainerID [ContainerID]
コンテナの再起動。
>docker container restart www_server >docker container restart beb3d097cd67
docker container restart [Option] ContainerName [ContainerName]
docker container restart [Option] ContainerID [ContainerID]
コンテナの中断・再開。
>docker container pause www_server >docker container pause beb3d097cd67
docker container pause ContainerName
docker container pause ContainerID
>docker container unpause www_server >docker container unpause beb3d097cd67
docker container unpause ContainerName
docker container unpause ContainerID
コンテナの削除。
>docker container rm www_server
docker container rm [Option] ContainerName [ContainerName]
docker container rm [Option] ContainerID [ContainerID]
>docker network ls
docker network ls [Option]
>docker network create --driver=bridge www_network
docker network create [Option] NetworkName
>docker network inspect www_network
>docker network connect www_network www_server
docker network connect [Option] NetworkName ContainerName
docker network connect [Option] NetworkName ContainerID
>docker container run --name www_server --net=www_network -d -p 8080:80 nginx
docker container run [Option] ImageName[:Tag|Digest] [OS Command] [Parameter]
>docker network disconnect www_network www_server
>docker network rm www_network
>docker build -t sample:1.0 .
docker build [Option] [ImageName[:Tag]] [Dockerfileの場所]
>docker container commit -a "daisuke nishino" www_server daisukenishino77/www_server2:hogehoge
docker container commit [Option] ContainerID [ImageName[:Tag]]
>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]
>docker image push daisukenishino77/hello-world2:hogehoge
docker image push [ImageName[:Tag]]
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 login [Server]
>docker rmi ImageID
>docker rmi ImageName[:TagName]
Bashでのやり方は、ネット上にあるが、
Windows上CMDでのやり方が不明なので、PowerShell?でやる。
※ 以下から、なんとなくパターン化可能なので、 Bashのコマンドを参考に、PowerShell?化できそう。
>docker ps -q | %{ docker stop $_ }
>docker ps -aq | %{ docker rm $_ }
>docker images -q | %{ docker rmi $_ }