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

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

我需要能够在构建这个开发环境时向 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

服务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

Logo

云原生社区为您提供最前沿的新闻资讯和知识内容

更多推荐