我有这个 docker-compose.yml:
version: "3.1"
services:
memcached:
image: memcached:alpine
container_name: universal-memcached2
redis:
image: redis:alpine
container_name: universal-redis2
mariadb:
image: mariadb:10.4
container_name: universal-mariadb2
working_dir: /application
volumes:
- .:/application
- "../data/db:/var/lib/mysql" # skasowac
environment:
- MYSQL_ROOT_PASSWORD=Haslo
- MYSQL_DATABASE=sample
- MYSQL_USER=user
- MYSQL_PASSWORD=Haslo
ports:
- "8083:3306"
webserver:
image: nginx:alpine
container_name: universal-webserver2
working_dir: /application
volumes:
- .:/application
- ./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "8080:80"
php-fpm:
build: phpdocker/php-fpm
container_name: universal-php-fpm2
working_dir: /application
volumes:
- .:/application
- ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.3/fpm/conf.d/99-overrides.ini
volumes:
generated:
var:
static:
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- mariadb
environment:
PMA_HOST: mariadb
PMA_PORT: 3306
ports:
- '8081:80'
当我在 symfony 4 上运行我的最新项目时,它运行得非常缓慢...... :(
我有新的 MacO 和 Docker Desktop。 我目前正在学习 Symfony 和 Laravel 框架,但这对于 Docker 来说非常慢。它甚至没有工作。
我该如何修复它?
最佳答案
事实上,Docker 需要一个普通的 Linux 内核才能运行。不幸的是,Mac OS 和 Windows 无法提供此功能。因此,在 Mac OS 上有一个客户端来运行 Docker。除此之外,Mac OS 内核和应用程序(Docker 容器)之间还有一个抽象层,并且文件系统也不相同。因此,Docker 在 Mac OS 上运行缓慢。您无法像在 Linux 上那样在 Mac OS 上运行 Docker。
如果我需要提供一些关于真实用例的实例。我有同样的机器。所以,我在 Mac OS Mojave 上的 Docker v18 上使用 Symfony 4。这是我在 Docker 上的 Symfony 总执行时间。 (显然,这取决于您的前端和数据库查询,但我会尝试启发您了解主要逻辑。)
- 第一次渲染 12000 毫秒
- 使用 Symfony 缓存:344 毫秒
- 使用 Docker 缓存(:用于卷的 Docker 的缓存属性):195 毫秒
只要我在没有 Docker 的情况下使用 Symfony,以下是我的总执行时间。
- 不使用 Docker,使用 Symfony 缓存:82 毫秒
然而,我们可以做一些改进来获得更好的工作空间。例如,您可以使用这样的卷,
volumes:
- .:/application:cached
关于php - MacOs 中的 Docker 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55951014/