如何正确共享两个容器之间的相同主机卷?
因为当Docker Compose改变了它的组成文件版本时, volumes_from
消失了,我在如何在不同的容器之间共享一个卷时感到有点volumes_from
。
看下面的例子,一个PHP应用程序住在一个PHP-FPM容器中,Nginx住在第二个。
version: '3.3' services: php: build: context: ./docker/php7-fpm args: TIMEZONE: ${TIMEZONE} env_file: .env volumes: - shared-volume:/var/www nginx: build: ./docker/nginx ports: - 81:80 depends_on: - php volumes: - shared-volume:/var/www volumes: shared-volume: driver_opts: type: none device: ~/sources/websocket o: bind
为了使应用程序的工作当然Nginx不得不访问PHP文件,并有volumes_from
帮助我们很多。 现在这个选项已经没有了。
当我尝试命令docker-compose up
它结束与以下消息:
错误:对于websocket_php_1无法创build容器的服务php:错误,同时挂载卷选项:type ='none'device ='〜/ sources / websocket'o ='绑定':没有这样的文件或目录
如何正确共享两个容器之间的相同主机卷?
为什么你不使用绑定挂载? 这只是每个需要看到的源代码,正确的? 我添加了:ro(只读)选项,假设没有代码生成正在发生。
services: php: build: context: ./docker/php7-fpm args: TIMEZONE: ${TIMEZONE} env_file: .env volumes: # User-relative path - ~/sources/websocket:/var/www:ro nginx: build: ./docker/nginx ports: - 81:80 depends_on: - php volumes: # User-relative path - ~/sources/websocket:/var/www:ro
- 无法使用Docker Compose运行rails控制台
- Docker-从主机angular度将configuration前端与后端的IP进行组合
- docker:找不到命令(mac mini)只发生在jenkins shell步骤中,但是在命令提示符下工作
- docker可执行文件没有在$ PATH中find
- 容器没有提及dockerfile – 多个容器
- 如何重新连接到docker实例
- Docker for Windows和docker-maven-plugin – “SSLException:无法识别的SSL消息,明文连接”错误
- 在FROM之后,Dockerfile不会更改RUN
- docker-compose错误在Django的欢迎页面上