我怎样才能用docker-compose进入bash shell?

意图:我想弄清楚如何使用命令docker-compose up --build来构build一台具有充当Web服务器和MSSQL服务的Apache / PHP7.1服务的机器作为所服务的应用程序的数据库从networking服务器。

我需要能够在构build这个开发环境的时候向docker容器input命令(以便我可以查看PHP日志等),但是由于Web服务器正在运行,我的terminal被占用了来自Web服务器,当我按ctrl+Z ,它实际上把泊坞窗进程在后台。

问题无论如何,我可以运行这个docker-compose.yml文件,并让它进入客机上的shell?

服务1:

 webserver: image: php:7.1-apache stdin_open: true tty: true volumes: - ./www:/var/www/html ports: - 5001:80 

服务2:

 mssql: image: microsoft/mssql-server-linux stdin_open: true tty: true environment: - ACCEPT_EULA=Y volumes: - ./www:/var/www/html ports: - 1433:1433 depends_on: -webserver 

你可以在正在运行的容器中exec一个新的进程。

 docker-compose exec [options] SERVICE COMMAND [ARGS...] 

在你的情况

 docker-compose exec webserver bash 

docker exec-i-t选项在docker-compose exec被假定

首先,与docker run相同, docker-compose有一个在后台运行服务/容器的选项。

 docker-compose up --detach --build 

之后,列出正在运行的容器:

 docker-compose ps 

并像@Matt连接到容器已经回答 。