我使用cloustuary创建了一个docker-compose.yml。下载并将其放入我的Laravel项目文件夹并运行docker-compose up -d后发生下载,然后我收到此消息:
错误:for worker-1无法启动service worker-1:创建安装源路径时出错'/ var / www / html / lensin / html':mkdir / var / www:只读文件系统
错误:对于nginx无法启动服务nginx:创建安装源路径时出错'/ var / www / html / lensin / html':mkdir / var / www:只读文件系统
错误:for app无法启动服务app:创建安装源路径时出错'/ var / www / html / lensin / html':mkdir / var / www:只读文件系统
错误:for workspace无法启动服务工作区:创建安装源路径时出错'/ var / www / html / lensin / html':mkdir / var / www:只读文件系统 错误:在启动项目时遇到错误。
我在Ubuntu 17上,甚至尝试将777设置为所有文件夹,并使用sudo运行它,但结果是一样的。我还尝试移动文件并编辑yml中的卷。
这是我的docker撰写文件:
version: '2'
services:
nginx:
image: 'cloudestuary/nginx:mainline-fpm'
restart: always
environment:
CLIENT_MAX_BODY_SIZE: 100m
DOCUMENT_ROOT: /var/www/html/public
INDEX_FILE: index.php
PHP_FPM: app
networks:
- app
volumes:
- './html:/var/www/html'
ports:
- '80:80'
app:
image: 'cloudestuary/php-fpm:7.1'
restart: always
environment:
MAX_UPLOAD_FILE_SIZE: 100m
APP_URL: 'http://lensin.localhost'
APP_KEY: 'base64:2X9U1HiBdmfbwvZ4UkwUP/25svg7439HXKWL1F8Xn1c='
DB_CONNECTION: mysql
DB_HOST: mysql
DB_PORT: '3306'
DB_DATABASE: cloudestuary
DB_USER: cloudestuary
DB_PASSWORD: secret
networks:
- app
volumes:
- './html:/var/www/html'
workspace:
image: 'cloudestuary/php-workspace:7.1'
restart: always
ports:
- '2222:22'
environment:
MAX_UPLOAD_FILE_SIZE: 100m
APP_URL: 'http://lensin.localhost'
APP_KEY: 'base64:2X9U1HiBdmfbwvZ4UkwUP/25svg7439HXKWL1F8Xn1c='
DB_CONNECTION: mysql
DB_HOST: mysql
DB_PORT: '3306'
DB_DATABASE: cloudestuary
DB_USER: cloudestuary
DB_PASSWORD: secret
SSH_PASSWORD: xsKEVWXPrdAeg
networks:
- app
volumes:
- './html:/var/www/html'
worker-1:
image: 'cloudestuary/php-cli:7.1'
restart: always
networks:
- app
environment: { }
volumes:
- './html:/var/www/html'
command: 'php artisan queue:work'
mysql:
image: 'mysql:5.7'
restart: always
networks:
- app
environment:
MYSQL_ROOT_PASSWORD: toor
MYSQL_PASSWORD: secret
MYSQL_USER: cloudestuary
MYSQL_DATABASE: cloudestuary
volumes:
- 'mysql-data:/var/lib/mysql'
volumes:
mysql-data: { }
networks:
app: { }
答案 0 :(得分:7)
重新启动您的docker服务。然后问题就会解决。
sudo systemctl restart docker
答案 1 :(得分:0)
从快照中删除Docker
snap remove docker
删除泊坞窗目录,和旧版本(这没关系,如果这些都不存在的话)
rm -R /var/lib/docker
sudo apt-get remove docker docker-engine docker.io
安装官方docker软件包:https://docs.docker.com/install/linux/docker-ce/ubuntu/
答案 2 :(得分:0)
如果您可以负担时间和不便,请重新安装Ubuntu。
我知道,蚊子用锤子敲击??我尝试了所有我可以找到的其他建议,即
- 从我的实例中卸载,清除并手动删除所有提及的docker。
- 从snap移除docker(如@HyperionX建议)。
以上无效:( ... 但是我重新安装了! :D:D !!
一切就绪!!!!
由于我的解决方案如果盲目执行,可能会给您带来更多麻烦,因此我个人建议下面的备份和还原步骤 最少 (您的用例可能参与其中。)
.ssh
和/etc/ssh
目录(也许用tar -zcvf archive-name.tgz directory-name
压缩它们)/etc/openvpn/username.conf
)sudo iptables-save > iptables.backup
)请勿从ubuntu安装菜单安装任何提及的docker(我宁愿完全放弃所有软件包),因为这似乎会让您直接进入。
但是 DO 安装ssh服务器
tar -zxvf archive-name.tgz
(并移至正确的目录)sudo iptables-restore < iptables.backup
答案 3 :(得分:0)
对于Windows 10上的Docker,有时您只需要等待一会(1-5分钟),然后再次执行docker-compose up
。
希望这会对其他人有所帮助。
答案 4 :(得分:0)
导致我来到这里的是Kubernetes V1VolumeMount。部署应用程序时,我得到了相同的错误格式:
ERROR: for <pod_name> Cannot start <service_name>: error while creating mount source path '<source_path>': mkdir <dir_path>: read-only file system
在一开始,我还考虑权限错误,因此该消息有点误导。原来,我正在尝试安装源映像中不存在的内容。因此,我没有教养的建议是,确认您尝试装载的内容确实存在,如果不存在,则可能不需要该装载路径。
P.S。我看到没有一个可接受的答案,所以我希望我的贡献不会引起不必要的混乱。