Docker容器在启动命令后退出

时间:2019-09-23 09:14:40

标签: docker containers chef

我正在尝试创建一个使用厨师食谱从docker hub添加python图像的docker容器。 Chef-client运行后,我可以看到该容器,但是即使发出了启动命令,该容器也没有启动。

这是我的食谱来提取python图像,

docker_service 'default' do
  action [:create, :start]
end

docker_image 'python' do
  tag 'latest'
  action :pull
end

docker_container 'testpy' do
  repo 'python'
  tag 'latest'
  action :run
end

下面是容器的问题

  

root @ ubuntunode2-vm:〜#docker start 2e512235c0fe
  2e512235c0fe

     

root @ ubuntunode2-vm:〜#docker exec -it 2e512235c0fe bash

     

守护程序的错误响应:容器2e512235c0fe50b6314648b9d6eae6162790e0793008344d27288d95c69d4923未运行

屏幕截图中的高光容器是通过厨师食谱创建的

2 个答案:

答案 0 :(得分:0)

由于您的问题未包含完整的详细信息,因此答案将集中在您的食谱上。

假设您正在使用docker Cookbook:

  1. 安装docker引擎。您可以使用docker_installtion资源来做到这一点。我更喜欢docker_installation_package资源,以便使用docker的linux存储库软件包并固定软件包版本
  2. 一旦安装了docker引擎,请确保docker engine守护程序(服务)正在运行。为此,您可以使用{native} service资源。请注意,docker食谱中有docker_service个资源,但我更喜欢本机服务方法
  3. 使用docker_image资源拉docker镜像
  4. 使用docker_container资源运行提取的docker镜像

答案 1 :(得分:0)

Python的交互式外壳需要tty才能运行,将tty: true添加到docker_container块中,您应该会很好。