Dockerの操作

更新日2017-03-20 (月) 18:20:03

Dockerイメージの作成

停止したnanoserverをイメージとして保存 (保存するにはコンテナを停止させておく)

起動した後停止したコンテナを確認

PS C:\Windows\system32> docker ps -a
CONTAINER ID        IMAGE                                            COMMAND                    CREATED             STATUS                            PORTS               NAMES
f83d5c1073ac        microsoft/nanoserver                            "cmd"                      7 minutes ago       Exited (0) 6 seconds ago                              objective_curie
  • イメージとして保存
PS C:\Windows\system32> docker commit objective_curie inoserver:last
sha256:38437e89df0e28b9e9565ea7c7f1c6a9e1ebcf1151d6896a539534e660474ccc

PS C:\Windows\system32> docker images
REPOSITORY                    TAG                    IMAGE ID            CREATED             SIZE
ism/nanoserver                last                   38437e89df0e        3 minutes ago       966 MB
microsoft/dotnet-samples      dotnetapp-nanoserver   661dce9dd1fd        2 weeks ago         1.03 GB
microsoft/iis                 latest                 a3dd2dff392b        7 weeks ago         9.82 GB
microsoft/windowsservercore   latest                 4d83c32ad497        2 months ago        9.56 GB
microsoft/nanoserver          latest                 d9bccb9d4cac        2 months ago        925 MB
  • 作成したイメージからコンテナを起動してコンテナに入る
PS C:\Windows\system32> docker run -it ism/nanoserver:last cmd
  • 停止したコンテナの確認
PS C:\Windows\system32> docker ps -a
CONTAINER ID        IMAGE                                           COMMAND                    CREATED             STATUS                            PORTS               NAMES
445b480239dc        ism/nanoserver:last                             "cmd"                      13 minutes ago      Exited (0) 12 minutes ago                             wonderful_goldstine
f83d5c1073ac        microsoft/nanoserver                            "cmd"                      27 minutes ago      Exite d (0) 20 minutes ago                             objective_curie
9a88968dbd96        microsoft/nanoserver                            "cmd"                      5 hours ago         Exite
  • 停止コンテナのコンテナを起動
PS C:\Windows\system32> docker start objective_curie
objective_curie
  • コンテナの停止
PS C:\Windows\system32> docker stop objective_curie
objective_curie
  • コンテナに入る
PS C:\Windows\system32> docker attach objective_curie

コンテナの削除

削除するコンテナ停止しておく

  • 停止しているコンテナを表示
PS C:\Windows\system32> docker ps -a -q
445b480239dc
f83d5c1073ac
9a88968dbd96
81456d1f540e
15eb1c521328
  • 停止しているコンテナを削除
PS C:\Windows\system32> docker rm 445b480239dc
445b480239dc
確認
PS C:\Windows\system32> docker ps -a -q
f83d5c1073ac
9a88968dbd96
81456d1f540e
  • 停止しているコンテナをすべて削除
PS C:\Windows\system32> $result=docker ps -a -q
(以下は$resultの内容表示)
PS C:\Windows\system32> Write-Output $result
f83d5c1073ac
9a88968dbd96
81456d1f540e


PS C:\Windows\system32> docker rm $resule
f83d5c1073ac
9a88968dbd96
81456d1f540e
  • 確認
PS C:\Windows\system32> docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS          NAMES

Dockerイメージ削除

PS C:\Windows\system32> docker images
REPOSITORY                    TAG                    IMAGE ID            CREATED             SIZE
ism/nanoserver                last                   38437e89df0e        9 hours ago         966 MB
microsoft/dotnet-samples      dotnetapp-nanoserver   661dce9dd1fd        2 weeks ago         1.03 GB
microsoft/iis                 latest                 a3dd2dff392b        7 weeks ago         9.82 GB
microsoft/windowsservercore   latest                 4d83c32ad497        2 months ago        9.56 GB
PS C:\Windows\system32> docker rmi a3dd2dff392b
Untagged: microsoft/iis:latest
Untagged: microsoft/iis@sha256:a9a3e01f2dd9273a57317acc3c163f2f765e40397f0d3043 39dedf4bfd10c32d
Deleted: sha256:a3dd2dff392b0e1f1caa90e92592ae12a87e8228f7b04f1ef35c7e9eefb9e406
Deleted: sha256:1c9fcf717cade11025303c2456a63410c4e3d989fde6eef644852e6367cab34b
Deleted: sha256:53de348d3b87ec7c062a539954b4a73559568e0ebb6cf7fd6c348df10be1f518
Deleted: sha256:b527bc5061dbd05b5fa646e941fd591d30042f219648a114122b5e8b422fe99c
  • イメージ削除確認
PS C:\Windows\system32> docker images
REPOSITORY                    TAG                    IMAGE ID            CREATED             SIZE
ism/nanoserver                last                   38437e89df0e        9 hours  ago         966 MB
microsoft/dotnet-samples      dotnetapp-nanoserver   661dce9dd1fd        2 weeks  ago         1.03 GB
microsoft/windowsservercore   latest                 4d83c32ad497        2 months ago        9.56 GB

docker searchで検索

PS C:\> docker search microsoft
NAME                                      DESCRIPTION                                     STARS     OFFICIAL   AUTOM
microsoft/aspnet                         ASP.NET is an open source server-side Web ...   568                  [OK]
microsoft/dotnet                         Official images for .NET Core for Linux an...   468                  [OK]
mono                                     Mono is an open source implementation of M...   221       [OK]
microsoft/mssql-server-linux             Official images for Microsoft SQL Server o...   191
microsoft/nanoserver                     Windows Server 2016 Nano Server base OS im...   147
microsoft/windowsservercore              Windows Server 2016 Server Core base OS im...   140
microsoft/aspnetcore                     Official images for running compiled ASP.N...   113                  [OK]
microsoft/iis                            Internet Information Services (IIS) instal...   100
microsoft/azure-cli                      Docker image for Microsoft Azure Command L...   80                   [OK]
microsoft/mssql-server-windows-express   Official Microsoft SQL Server Express Edit...   61
microsoft/mssql-server-windows           Official images for Microsoft SQL Server f...   35
microsoft/powershell                     Official PowerShell Core releases  from htt...   30                   [OK]
microsoft/aspnetcore-build               Official images for building ASP.NET Core ...   30                   [OK]
microsoft/oms                            Monitor your containers using the Operatio...   19                   [OK]
microsoft/dotnet-samples                 .NET Core Docker Samples                        15                   [OK]
microsoft/cntk                           CNTK images from github.com/Microsoft/CNTK...   7                    [OK]
microsoft/powershell-nightly             Nightly builds of PowerShell Core for CI        6                    [OK]
microsoft/dotnet-nightly                 Preview bits of the .NET Core CLI               4                    [OK]
microsoft/applicationinsights            Application Insights for Docker helps you ...   4                    [OK]
microsoft/aspnetcore-build-nightly       Images to build preview versions of ASP.NE...   1                    [OK]
berlius/microsoft-malmo                  Microsoft-malmo - artificial intelligence ...   1
microsoft/iot-gateway-opc-ua-proxy       Azure IoT Gateway with OPC UA Proxy module      0                    [OK]
dreher/microsoft                         Microsoft Test Repo                             0
renerchen/microsoft                                                                      0
microsoft/iot-gateway-opc-ua             Azure IoT Gateway with OPC UA Publisher mo...   0                    [OK]

Hyper-VコンテナでIISの起動

イメージからコンテナ起動時「--isolation=hyperv」オプションを追加する

PS C:\Windows\system32> docker run -d -p 80:80 --isolation=hyperv --name ism-iis --ip 172.30.176.221 microsoft/iis
24e2da0bbe08dc7ce6363401f327927640032bb88b580b02527620f14a820938

(または docker run -d -p 80:80 --isolation hyperv microsoft/iis)

PS C:\Windows\system32> docker ps
CONTAINER ID        IMAGE               COMMAND                   CREATED             STATUS              PORTS                NAMES
24e2da0bbe08        microsoft/iis       "C:\\ServiceMonitor..."   15 seconds ago      Up 8 seconds        0.0.0.0:80->80/tcp   ism-iis
  • IISのコンテナにコマンドで入る
PS C:\Windows\system32> docker exec -i -t 24e2da0bbe08 cmd
  • IISのコンテナにPowerShellで入る
PS C:\Windows\system32> docker exec -i -t 24e2da0bbe08 powershell

ホストとコンテナのファイル共有

  • ホスト側のフォルダ: C:\iis_work
  • コンテナ側のフォルダ(シンボリックリンク): C:\work2

ホスト側にフォルダを作成
(コンテナ側はフォルダ作成は不要)

PS C:\> mkdir iis_work
  • シンボリックリンク(C:\work2)を設定しコンテナをイメージから起動
  • -v [ホスト側のディレクトリ]:[コンテナ側のディレクトリ]
  • --name [コンテナの名前]
PS C:\> docker run -v c:\iis_work:c:\work2 -d -p 80:80 --isolation=hyperv --name ism-iis ism/iis
a8517ac07fc242107ffc08c2a0d2c37439441d652cd20b3f9a9f46b6d752e96f
PS C:\>  docker ps -a
CONTAINER ID        IMAGE               COMMAND                   CREATED             STATUS              PORTS
       NAMES
a8517ac07fc2        ism/iis             "C:\\ServiceMonitor..."   9 seconds ago       Up 2 seconds        0.0.0.0:80->80
/tcp   ism-iis
  • --p 8080:80の時のポートの関係
    • HOSTからのアクセス http://(コンテナIP)/
    • 外部からのアクセス http://(HOST IP[Windows2016のIP]):8080/
  • コンテナ内
PS C:\>  docker exec -i -t ism-iis cmd

以下コンテナ内

C:\>dir
 Volume in drive C has no label.
 Volume Serial Number is 1440-27AC 

 Directory of C:\

03/18/2017  11:39 AM    <DIR>          inetpub
11/23/2016  07:45 AM             1,894 License.txt
07/16/2016  10:18 PM    <DIR>          PerfLogs
01/09/2017  06:24 AM    <DIR>          Program Files
07/16/2016  10:18 PM    <DIR>          Program Files (x86)
10/14/2016  08:55 AM           135,864 ServiceMonitor.exe
01/09/2017  06:25 AM    <DIR>          Users
01/19/2017  03:43 AM    <DIR>          Windows
03/18/2017  11:06 AM    <DIR>          work
03/18/2017  11:39 AM    <SYMLINKD>     work2 [\\?\ContainerMappedDirectories\C6C44851-70A3-43D5-B195-6E1A1F31018D]   ← シンボリックができている
               2 File(s)        137,758 bytes
               8 Dir(s)  21,225,029,632 bytes free

コンテナ作成場所(イメージも同じ?)

C:\ProgramData\docker\windowsfilter

コンテナはコンテナIDとフォルダ名の一部が一致する

PS C:\> docker run -v c:\iis_work:c:\work2 -d -p 80:80 --isolation=hyperv --name ism-iis ism/iis
9a917d4e60d43640298970b8898f0b2083dc1e8d6196d4426e366ff8b4d2bc64 ←ここが(A)
PS C:\ProgramData\docker\windowsfilter> dir


  ディレクトリ: C:\ProgramData\docker\windowsfilter


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2017/03/18     15:12                9a917d4e60d43640298970b8898f0b2083dc1e8d6196d4426e366ff8b4d2bc64  ←ここがdocker runのとき表示されたものと同じ(A)
d-----       2017/02/26     20:11                a3c9e510b456125b62284192b95058ae4612e9e87ed3e2f760a5296361c8a7bd
d-----       2017/03/11     22:05                af46ac89a06ad72f16e2a39808cfcd037209ce88db4525a7b77169632e762088
d-----       2017/03/11      8:59                b580e0227965a12d92cf285dd39245a2723c8bb231c063136049732d2c59bb84

参考


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-03-20 (月) 18:20:03 (486d)