snapflowio/docker
最新稳定版本:v0.1.1
Composer 安装命令:
composer require snapflowio/docker
包简介
A simple and lightweight library for interacting with Docker containers.
README 文档
README
A simple and lightweight library for interacting with Docker containers.
Installation
composer require snapflowio/docker
Quick Start
<?php use Snapflow\Docker\Docker; use Snapflow\Docker\Adapter\DockerCLI; use Snapflow\Docker\Adapter\RestartPolicy; use Snapflow\Docker\Builder; // Initialize $docker = new Docker(new DockerCLI()); // Pull an image $docker->pull('nginx:alpine'); // Create network and volume $docker->createNetwork('frontend-network'); $docker->createVolume('static-assets', ['project' => 'blog']); // Create and run a container using the builder $containerId = Builder::create('nginx:alpine', 'blog-frontend') ->withPort(80, 8080) ->withEnv('NGINX_HOST', 'blog.local') ->withVolume('static-assets', '/usr/share/nginx/html') ->withNetwork('frontend-network') ->withRestart(RestartPolicy::UNLESS_STOPPED) ->withLabel('project', 'blog') ->build($docker); // Container lifecycle operations if ($docker->isRunning('blog-frontend')) { echo "Container is running!\n"; // Pause and unpause $docker->pause('blog-frontend'); $docker->unpause('blog-frontend'); // View logs with timestamps $logs = $docker->logs('blog-frontend', tail: 20, timestamps: true); echo $logs; // Execute command in container $output = ''; $docker->execute('blog-frontend', ['nginx', '-v'], $output); echo "Version: {$output}\n"; // Get container stats $stats = $docker->getStats('blog-frontend'); foreach ($stats as $stat) { echo "CPU: " . round($stat->getCpuUsage() * 100, 2) . "%\n"; echo "Memory: " . round($stat->getMemoryUsage(), 2) . "%\n"; } // Inspect container $info = $docker->inspect('blog-frontend'); echo "Status: {$info['State']['Status']}\n"; } // List containers with filters $containers = $docker->list(['label' => 'project=blog']); // Image management $images = $docker->listImages(); if ($docker->imageExists('nginx:alpine')) { echo "Image exists\n"; } // Cleanup $docker->stop('blog-frontend'); $docker->remove('blog-frontend', force: true); $docker->removeVolume('static-assets'); $docker->removeNetwork('frontend-network');
License
This library is available under the MIT License.
Copyright
Copyright (c) 2025 Snapflow
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-17