官术网_书友最值得收藏!

Doing one thing with a task container

The dockeronwindows/ch02-powershell-env:2e image is an example of a packaged application which is meant to run in a container and perform a single task. The image is based on Microsoft Windows Server Core and is set up to run a simple PowerShell script when it starts, printing details about the current environment. Let's see what happens when I run a container directly from the image:

> docker container run dockeronwindows/ch02-powershell-env:2e

Name Value
---- -----
ALLUSERSPROFILE C:\ProgramData
APPDATA C:\Users\ContainerAdministrator\AppData\Roaming
CommonProgramFiles C:\Program Files\Common Files
CommonProgramFiles(x86) C:\Program Files (x86)\Common Files
CommonProgramW6432 C:\Program Files\Common Files
COMPUTERNAME 8A7D5B9A4021

...

Without any options, the container runs a PowerShell script which is built into the image, and the script prints out some basic information about the operating system environment. I call this a task container because the container performs one task and then exits.

If you run docker container ls, which lists all the active containers, you won't see this container. But if you run docker container ls --all, which shows containers in all states, you'll see it in the Exited status:

> docker container ls --all
CONTAINER ID IMAGE COMMAND CREATED STATUS
8a7d5b9a4021 dockeronwindows/ch02-powershell-env:2e "powershell.exe C:..." 30 seconds ago Exited

Task containers are very useful in automating repetitive tasks, like running scripts to set up an environment, backing up data, or collecting log files. Your container image packages the script to run, along with the exact version of all the requirements that the script needs, so anyone with Docker installed can run the script without having to install pre-requisites.

This is especially useful for PowerShell, where scripts can be dependent on several PowerShell modules. The modules may be publicly available, but your script can be dependent on specific versions. Instead of sharing a script that requires users to install the correct version of many different modules, you build an image that has the modules already installed. Then you only need Docker to run the script task.

Images are self-contained units, but you can also use them as a template. An image may be configured to do one thing, but you can run containers from an image in different ways to do different things.

主站蜘蛛池模板: 洪湖市| 宁德市| 渝中区| 绥棱县| 上思县| 仙桃市| 赫章县| 阿拉善右旗| 云霄县| 芜湖县| 错那县| 汕头市| 邢台市| 隆安县| 岢岚县| 涪陵区| 吉木乃县| 易门县| 大丰市| 阿图什市| 晴隆县| 平山县| 建始县| 哈尔滨市| 凤庆县| 泊头市| 博兴县| 镇原县| 宁海县| 平舆县| 腾冲县| 绥江县| 盐津县| 广安市| 伊吾县| 青州市| 湖北省| 聊城市| 沙湾县| 太保市| 太仓市|