我想使用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 …”撰写文件时,出现错误并显示无效字符。如果我删除了这两个命令,它会完美地工作。
要使容器在启动时保持运行docker-compose,请使用以下命令
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。
composename