从外部容器访问数据

时间:2020-02-02 03:53:03

标签: docker docker-compose containers

我有一些运行如下的docker映像:

77beec19859a        nginx:latest                "nginx -g 'daemon of…"   9 seconds ago       Up 4 seconds        0.0.0.0:8000->80/tcp                       dockerisedphp_web_1
d48461d800e0        php:fpm                     "docker-php-entrypoi…"   9 seconds ago       Up 4 seconds        9000/tcp                                   dockerisedphp_php_1
a6ed456a4cc2        phpmyadmin/phpmyadmin       "/docker-entrypoint.…"   12 hours ago        Up 12 hours         0.0.0.0:8080->80/tcp                       sc-phpmyadmin
9e0dda76c110        firewatchdocker_webserver   "docker-php-entrypoi…"   12 hours ago        Up 12 hours         0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   7.4.x-webserver
beba7cb1ee14        firewatchdocker_mysql       "docker-entrypoint.s…"   12 hours ago        Up 12 hours         0.0.0.0:3306->3306/tcp, 33060/tcp          mysql
000e0f21d46e        redis:latest                "docker-entrypoint.s…"   12 hours ago        Up 12 hours         0.0.0.0:6379->6379/tcp                     sc-redis

问题是:我的PHP脚本需要从容器mysql访问dockerisedphp_web_1容器内mysql上的数据。

容器之间可以进行这种数据交换吗?

实际上,我是在使用docker-compose来显示所有内容。

1 个答案:

答案 0 :(得分:0)

如果您只需要对数据做一些事情,而又不需要主机上的数据,则可以使用docker exec

如果要将其复制到主机,或将数据从主机复制到容器,则可以使用docker cp

您可以使用docker exec在mysql容器中运行mysql客户端,将结果写入文件,然后使用docker cp将输出复制到主机。

或者您也可以在主机上执行类似docker exec mysql-container-name mysql mysql-args > output的操作。