Docker-在容器之间共享命令

时间:2018-10-01 13:14:53

标签: docker

我正在尝试对Laravel应用进行docker化。在我的本地计算机上,我有Mysql和MongoDB。

我有一个运行mysql restore和mongorestore来恢复生产数据库的脚本。

在本地环境中,我没有问题,因为mysql和mongodb是本地安装的。

现在,我用构建说明创建了一个docker-compose.yml

version: '3'

services:
  app:
    build:
      context: .
      dockerfile: .docker/Dockerfile.dev
    image: laravel-docker
    ports:
      - 8080:80
    volumes:
      - /srv/app/vendor
      - .:/srv/app
    links:
      - mariadb
      - redis
  redis:
    image: redis:latest
  mariadb:
    image: mariadb:latest
    environment:
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
      - MYSQL_USER=root
  mongo:
    image: mongo

一切正常,但是我需要从mysql容器运行app命令(应该在mariadb容器中调用mysql命令)

1 个答案:

答案 0 :(得分:1)

只需在 app 容器中安装 MySQL客户端

在您的Dockerfile中添加类似的内容:

apt-get install mysql-client

然后,如果它们属于同一网络,则应该可以使用服务名称从 app 容器连接到MySql服务器:

mysql -u USERNAME -p PASSWORD -h mariadb