相关文章推荐

In this mini-series, I plan to walk you through Docker as I learn it.

A complete list of post in this series is included below :

  • Day 1 - Exploring Docker for Windows - Getting Started
  • Day 2 - Exploring Docker for Windows - Stopping and Restarting Containers
  • Day 3 - Exploring Docker for Windows - Removing Containers and Images
  • Day 4 - Exploring Docker for Windows - Running Docker Documentation Locally
  • Day 5 - Exploring Docker for Windows - Running A Command Prompt Inside a Container
  • Day 6 - Exploring Docker for Windows - Accessing Files inside a Container
  • Running an interactive application inside a container

    We’ve ran a couple of applications that run in the background, but haven’t yet tried running an application that we’ll interact with. I think a good example of this is running .NET Core in the Command Prompt. Let’s Begin :

    If you navigate to https://hub.docker.com/r/microsoft/dotnet/ in your web browser, you will see is an image for .NET Core to run inside of Docker.

    Begin by typing the following command via PowerShell :

    docker run microsoft/dotnet:nanoserver
    

    And you’ll see it pull down the image and try to run it as shown below :

    PS C:\Windows\system32> docker run -it microsoft/dotnet:nanoserver
    Unable to find image 'microsoft/dotnet:nanoserver' locally
    nanoserver: Pulling from microsoft/dotnet
    bce2fbc256ea: Downloading [>                                                  ] 1.065 MB/252.7 MB
    58f68fa0ceda: Downloading [===>                                               ] 8.093 MB/114.9 MB
    67bce391bf48: Download complete
    d50d4762f91f: Download complete
    057903a00c7c: Download complete
    f2c2ae47c5db: Downloading [======================>                            ] 55.69 MB/125.5 MB
    54e60e47aa5f: Waiting
    41b108ae93d3: Waiting
    d1e8a8809606: Waiting
    Microsoft Windows [Version 10.0.14393]
    (c) 2016 Microsoft Corporation. All rights reserved.
    

    You see that it listed the C Prompt but you can’t type anything.

    If you run docker ps -a then you will see a list of processes (stop or started) :

    CONTAINER ID        IMAGE                         COMMAND                    CREATED              STATUS
                       PORTS               NAMES
    0bd91d15c075        microsoft/dotnet:nanoserver   "c:\\windows\\system..."   About a minute ago   Exited (0) About a min
    ute ago                                clever_shirley
    

    We can see that it started our instance of .NET Core but it exited out. We can’t see the command that it ran as it truncated it from the output. To fix that, we need to run docker ps -a --no-trunc to see what command was actually executed :

    CONTAINER ID                                                       IMAGE                         COMMAND                            CREATED             STATUS
                           PORTS               NAMES
    0bd91d15c075ce09896cce6c129919570c4983543085674eaa0114d5eadf7142   microsoft/dotnet:nanoserver   "c:\\windows\\system32\\cmd.exe"   4 minutes ago       Exited (0) 4
    minutes ago                                clever_shirley
    

    We can now see that it started c:\\windows\\system32\\cmd.exe. Great! So this is a command prompt that we are looking for. OK, so let’s go ahead and run the docker run command and add -it for Interactive Terminal :

    docker run -it microsoft/dotnet:nanoserver
    

    Now we are running a command prompt inside of a Container using Docker. We can even run dotnet --info to verify.

    You can type exit to return to PowerShell on your local machine. Very cool!

    Wrap-up

    As always, thanks for reading and smash one of those share buttons to give this post some love if you found it helpful. Also, feel free to leave a comment below or follow me on twitter for daily links and tips.

    Subscribe to Michael's Weekly Blog Digest

    I'll send you an email once a week of all my recent blog posts and notable Azure news.

    Email:
     
    推荐文章