执行以下命令时,我正在观察以下错误。
cmd used-
docker exec -it f88566c370dd /bin/bash
观察到错误 -Error response from daemon: Container f88566c370dd is not running
我正在尝试从VM执行Chef配方来提取图像并运行三个CentOS容器。
#
# Cookbook Name:: chef-docker
# Recipe:: default #
# Copyright 2016, SONATA_SOFTWARE #
# All rights reserved - Do Not Redistribute
#
docker_service 'default' do
action [:create, :start]
end
# Pull latest image
docker_image 'centos' do
tag 'latest'
action :pull
end
# Run container
docker_container 'first' do
repo 'centos'
command 'ls -la /'
end
docker_container 'second' do
repo 'centos'
command 'ls -la /'
end
docker_container 'third' do
repo 'centos'
command 'ls -la /'
end
VM中用于执行主厨配方的命令
chef-client -r recipe[chef-docker::Default]
预期结果:在容器中安装Java,Python或Jenkins和Tomcat等工具。
[root@sonatadocker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos latest 97cad5e16cb6 3 weeks ago 196.5 MB
[root@sonatadocker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f88566c370dd centos:latest "ls -la /" 18 hours ago Exited (0) 17 hours ago third
fdc12e9f65a9 centos:latest "ls -la /" 18 hours ago Exited (0) 17 hours ago second
604f0eba7010 centos:latest "ls -la /" 18 hours ago Exited (0) 17 hours ago first
答案 0 :(得分:3)
为了保持容器的正常运行,Docker需要一个命令来继续在前台运行。
在您的情况下,命令 " ls -la /" 列出目录内容并退出,这将导致退出容器。尝试使用继续在前台运行的命令启动容器。
答案 1 :(得分:1)
您的容器只运行一个命令,然后退出。
docker_container 'first' do
repo 'centos'
command 'ls -la /'
end
将此视为产生子shell,执行ls -al /
,然后退出。
让他们保持正常运行的黑客将命令更改为:
ls -la /; sleep 10m
要验证容器是否已运行该命令,您可以使用以下命令检查容器的日志:
docker logs third
答案 2 :(得分:0)
通过将命令更改为“/ bin / bash”,我可以看到处于up状态的容器。
docker_service 'default' do
action [:create, :start]
end
# Pull latest image
docker_image 'centos' do
tag 'latest'
action :pull
end
# Run container
docker_container 'first' do
repo 'centos'
command '/bin/bash'
tty true
action :run
end
docker_container 'second' do
repo 'centos'
command '/bin/bash'
tty true
action :run
end