我为centos7构建一个dockerfile和一个docker-compose文件,用于将卷链接到容器并设置一些局部变量。当我用
启动容器时docker-compose up --build
我的dockerfile完成了它的工作。启动容器后,它将以Exitcode 0退出。
我想通过shell访问我的容器。如何在不终止容器和保持开放的情况下做到这一点?
我的Dockerfile:
FROM centos:7
RUN yum -y update
CMD /bin/sh
My Composer文件:
version: '2'
services:
media:
build: .
volumes:
- ./media:/media
- ./media/bin/x86_64/release/:/usr/local/lib/
command: bash
environment:
- LD_LIBRARY_PATH=usr/lib64:/usr/local/lib
expose:
- "8080"
- "80"
- "443"
有什么想法吗?
为了使其在正常的docker中保持打开状态已经解释,但不是在使用docker-compose的上下文中。
答案 0 :(得分:1)
使用docker-compose run
代替docker-compose up
。
$ docker-compose run --rm media /bin/bash
[root@54eb39f672c7 /]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
docker-compose up
用于启动始终运行的服务。
另一方面,docker-compose run
用于运行一次性命令。
docker-compose run
没有--build
选项。
如果要更改Dockerfile并重建图像,请使用docker-compose build
。
答案 1 :(得分:0)
添加-d以分离模式运行
docker-compose up -d --build