2017-10-06 46 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容器。