一尘不染

Docker Compose保持容器运行

docker

我想使用docker-compose启动服务并保持容器运行,以便我可以通过“ docker inspect”获取其IP地址。但是,容器始终在启动后立即退出。

我试图在docker-compose.yml中添加“ command:[“ sleep”,“ 60”]“和其他内容,但是每当我添加带有”
command:…“的行时,我都无法调用” docker-compose
up“因为我将收到消息“无法启动容器.....系统错误:无效的字符’k’寻找值的开始”

我还尝试向Dockerfile本身添加“ CMD sleep 60”和诸如此类的东西,但是这些命令似乎并未执行。

有没有一种简单的方法来保持容器的寿命或解决我的问题之一?

编辑:这是我要运行的撰写文件:

version: '2'
services:
  my-test:
    image: ubuntu
    command: bash -c "while true; do echo hello; sleep 2; done"

如果我在OS X下以docker-compose开头,则工作正常,但如果在Ubuntu 16.04下尝试相同操作,则会出现上述错误消息。

如果我尝试使用Dockerfile的方法,则Dockerfile如下所示:

FROM ubuntu:latest
CMD ["sleep", "60"]

哪个似乎什么都没做

编辑2:我必须纠正自己,原来这是Dockerfile和docker-compose.yml的相同问题:每次我向Dockerfile添加“ CMD
…”或向其中添加“ command …”撰写文件时,出现错误并显示无效字符。如果我删除了这两个命令,它会完美地工作。


阅读 1020

收藏
2020-06-17

共1个答案

一尘不染

要使容器在启动时保持运行docker-compose,请使用以下命令

command: tail -F anything

所以你的docker-compose.yml变成

version: '2'
services:
  my-test:
    image: ubuntu
    command: tail -F anything

您可以使用以下命令运行外壳程序以进入容器

docker exec -i -t composename_my-test_1 bash

容器前面composename的名称在哪里docker-compose

2020-06-17