来自守护程序的错误响应:容器 f88566c370dd 不是 运行
Error response from daemon: Container f88566c370dd is not running
我在执行以下命令时观察到以下错误。
cmd used- docker exec -it f88566c370dd /bin/bash
error observed- 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
你的容器运行只有一个命令然后退出。
docker_container 'first' do
repo 'centos'
command 'ls -la /'
end
将此视为生成子 shell,执行 ls -al /
,然后退出。
保持它们正常运行的技巧,运行ning 将命令更改为:
ls -la /; sleep 10m
要验证您的容器是否有 运行 命令,您可以使用以下命令检查容器的日志:
docker logs third
通过将命令更改为“/bin/bash”,我可以看到容器处于启动状态。
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
为了让容器保持运行,Docker 需要一个命令将 运行ning 保持在前台。
在您的情况下,命令 "ls -la /" 列出目录内容并退出,这会导致退出容器。尝试使用在前台继续 运行 的命令启动容器。
我在执行以下命令时观察到以下错误。
cmd used-
docker exec -it f88566c370dd /bin/bash
error observed-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
你的容器运行只有一个命令然后退出。
docker_container 'first' do
repo 'centos'
command 'ls -la /'
end
将此视为生成子 shell,执行 ls -al /
,然后退出。
保持它们正常运行的技巧,运行ning 将命令更改为:
ls -la /; sleep 10m
要验证您的容器是否有 运行 命令,您可以使用以下命令检查容器的日志:
docker logs third
通过将命令更改为“/bin/bash”,我可以看到容器处于启动状态。
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
为了让容器保持运行,Docker 需要一个命令将 运行ning 保持在前台。
在您的情况下,命令 "ls -la /" 列出目录内容并退出,这会导致退出容器。尝试使用在前台继续 运行 的命令启动容器。