docker_container resource

[edit on GitHub]

Use the docker_container Chef InSpec audit resource to test a Docker container.

Availability

Installation

This resource is distributed along with Chef InSpec itself. You can use it automatically.

Version

This resource first became available in v1.21.0 of InSpec.

Syntax

A docker_container resource block declares the configuration data to be tested:

describe docker_container('container') do
  it { should exist }
  it { should be_running }
  its('id') { should_not eq '' }
  its('image') { should eq 'busybox:latest' }
  its('repo') { should eq 'busybox' }
  its('tag') { should eq 'latest' }
  its('ports') { should eq [] }
  its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
end

Resource Parameter Examples

name

The container name can also be passed with the name resource parameter:

describe docker_container(name: 'an-echo-server') do
  it { should exist }
  it { should be_running }
end

id

Alternatively, you can pass in the container id:

describe docker_container(id: '71b5df59442b') do
  it { should exist }
  it { should be_running }
end

Property Examples

The following examples show how to use this Chef InSpec resource.

id

The id property tests the container id:

its('id') { should eq 'sha:71b5df59...442b' }

repo

The repo property tests the value of the image repository:

its('repo') { should eq 'busybox' }

tag

The tag property tests the value of the image tag:

its('tag') { should eq 'latest' }

ports

The ports property tests the value the Docker ports:

its('ports') { should eq '0.0.0.0:1234->1234/tcp' }

command

The command property tests the value of the container run command:

its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }

Verify a running container:

describe docker_container('an-echo-server') do
  it { should exist }
  it { should be_running }
  its('id') { should_not eq '' }
  its('image') { should eq 'busybox:latest' }
  its('repo') { should eq 'busybox' }
  its('tag') { should eq 'latest' }
  its('ports') { should eq [] }
  its('command') { should eq 'nc -ll -p 1234 -e /bin/cat' }
end

Matchers

For a full list of available matchers, please visit our matchers page.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/docker_container/