我使用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
谢谢
答案 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"