soyhuce / laravel-docker
与Docker实例交互
1.12.0
2024-03-28 14:19 UTC
Requires
- php: ^8.2
- ext-curl: *
- ext-json: *
- guzzlehttp/guzzle: ^7.6
- illuminate/support: ^10.0 || ^11.0
- spatie/laravel-data: ^3.9 || ^4.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.6
- larastan/larastan: ^2.9.2
- mockery/mockery: ^1.4
- orchestra/testbench: ^8.0 || ^9.0
- pestphp/pest: ^2.24
README
此包允许您通过Unix套接字或API与Docker实例进行通信。
API模式基于 API Docker Engine
安装
您可以通过composer安装此包
composer require soyhuce/laravel-docker
使用
配置
通过以下命令发布配置文件
php artisan vendor:publish --provider="Soyhuce\Docker\ServiceProvider"
API
要使用API驱动程序使用此包,您可以将Docker暴露在HTTP端口上。
例如,您可以这样做
socat TCP-LISTEN:<端口号>,reuseaddr,fork UNIX-CLIENT:<Unix套接字路径>
因此,在您的配置文件中,您必须定义配置文件如下
[
'driver' => 'api',
'version' => 'v1.40',
'drivers' => [
'api' => [
'url' => 'http://127.0.0.1:<port-number>',
]
],
]
您也可以使用Unix套接字连接到Docker
[
'driver' => 'api',
'version' => 'v1.40',
'drivers' => [
'socket' => [
'unix_socket' => '/var/run/docker.sock',
],
],
]
与Docker容器一起工作
- create($imageName, $containerName) : 从镜像创建容器
- start($containerId) : 从其名称或ID启动容器
- stop($containerId) : 停止其名称或ID的容器
- wait($containerId) : 等待其名称或ID的容器
- delete($containerId) : 从其名称或ID删除容器
与Docker镜像一起工作
- create($imageName, $tagName) : 拉取镜像
- all() : 获取您的Docker实例上的所有镜像
- remove($imageName) : 从其名称删除镜像