2017-10-06 43 views
0

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

我需要能够在构建这个开发环境时输入到docker容器的命令(以便我可以查看PHP日志等),但是由于Web服务器正在运行,我的终端被占用来自Web服务器的输出,当我按ctrl+Z时,它实际上将docker进程置于后台。

问题: 是否有无论如何,我可以运行这个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 
+1

简单的'docker'回答也适用于这里以及:https://stackoverflow.com/q/17903705/1318694 – Matt

回答

2

您可以exec在运行中的容器的新工艺。

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

在你的情况

docker-compose exec webserver bash 

-idocker exec-t选项假设docker-compose exec

1

首先,同docker rundocker-compose有运行的服务/容器的选择在背景中。

docker-compose up --detach --build 

之后,列出运行容器用:

docker-compose ps 

,并连接到像@马特已经answered容器。