Ubuntu容器不断重启

时间:2018-01-28 05:43:50

标签: ubuntu docker containers

我使用docker-compose添加一个新的ubuntu容器,但容器一直在重启,我不知道为什么......我可以查看的任何线索?

这里是我的docker-compose服务:

  ubuntu:
    image: ubuntu
    container_name: ubuntu
    network_mode: host
    restart: unless-stopped
    volumes:
      - /mnt:/NAS:rw
    environment:
      - TZ="Asia/Shanghai"

这是 docker ps 输出:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                          PORTS                                            NAMES
6c084528838c        ubuntu              "/bin/bash"              6 minutes ago       Restarting (0) 18 seconds ago                                                    ubuntu

我在Ubuntu服务器17.04上使用Docker 17.09,并且运行带有此别名的容器:

alias dcrun='docker-compose -f /home/docker-compose.yml'

dcrun up -d ubuntu

谢谢

1 个答案:

答案 0 :(得分:5)

由于您未在docker compose中定义任何const handlers = [ { key: 'option1', func: async () => { ... do asyn stuff } }, { key: 'option2', func: async () => { ... do asyn stuff } }, { key: 'option3', func: async () => { ... do asyn stuff } } ]; const exec = async options => { for(const opt of options) { const currentHandler = handlers.find(h => h.key == option); await currentHandler(); }; } // Get user options, execute program exec(options) .catch(console.error); command:,因此非常期待这一点。

默认情况下,Ubuntu映像的entrypoint:命令为bash,这不是真正的前台进程。 参考 - https://github.com/dockerfile/ubuntu/blob/master/Dockerfile

如果您以交互模式(-i)运行它,您将自动潜入CMD -

bash

因此,一旦$ docker run -it ubuntu root@8d6ac0591d88:/# 命令退出容器也会死亡但由于您的bash策略,Docker守护程序会继续尝试重新启动它。

如果你想让你的容器起来&使用compose运行,尝试定义前台进程,如下所示 -

restart: unless-stopped

您的容器现在不会重启 -

  ubuntu:
    image: ubuntu
    container_name: ubuntu
    network_mode: host
    restart: unless-stopped
    volumes:
      - /mnt:/NAS:rw
    environment:
      - TZ="Asia/Shanghai"
    command: "tail -f /dev/null"