如何使用 docker-compose 进入 bash shell?

Moo*_*ose 1 sql-server docker docker-compose

意图: 我试图弄清楚如何使用该命令docker-compose up --build构建一台机器,其中 Apache/PHP7.1 服务充当 Web 服务器,MSSQL 服务充当 Web 服务器提供的应用程序的数据库。

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

问题: 我是否可以运行这个 docker-compose.yml 文件并将其放入来宾计算机上的 shell 中?

服务一:

webserver:
    image: php:7.1-apache
    stdin_open: true
    tty: true
    volumes:
      - ./www:/var/www/html
    ports:
      - 5001:80
Run Code Online (Sandbox Code Playgroud)

服务二:

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
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 6

您可以exec在正在运行的容器中创建新进程。

docker-compose exec [options] SERVICE COMMAND [ARGS...]
Run Code Online (Sandbox Code Playgroud)

在你的情况下

docker-compose exec webserver bash
Run Code Online (Sandbox Code Playgroud)

-i选项假设-tdocker execdocker-compose exec