- Docker on Windows
- Elton Stoneman
- 322字
- 2021-07-02 19:53:18
Connecting to an interactive container
An interactive container is one that has an open connection to the Docker command line, so you work with the container as if you were connected to a remote machine. You can run an interactive container from that same Nano Server image by specifying the interactive options and a command to run when the container starts:
> docker container run --interactive --tty dockeronwindows/ch02-powershell-env `
powershell
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS C:\> Write-Output 'This is an interactive container'
This is an interactive container
PS C:\> exit
The --interactive option runs an interactive container, and the --tty flag attaches a dummy terminal connection to the container. The powershell statement after the name of the container image is the command to run when the container starts. By specifying a command, you replace the startup command that's been set up in the image. In this case, I start a PowerShell session, and that runs instead of the configured command, so the environment printout script doesn't run.
An interactive container keeps running as long as the command inside is running. While you're connected to PowerShell, running docker container ls on another window on the host will show the container is still running. When you type exit in the container, the PowerShell session ends, so there's no process running and the container exits too.
Interactive containers are useful when you're building your own container images, as you can work through the steps interactively first and verify that everything will work as you expect. They're good exploratory tools too. You'll see as you move further into this book that Docker can host complex distributed systems in a virtual network, with each component running in its own container. If you want to examine parts of the system, you can run an interactive container inside the network and check on individual components, without having to make the parts publicly accessible.