Docker里面的Docker(没有命令行)

时间:2016-07-23 11:18:18

标签: bash docker dockerfile docker-image

我想在docker镜像中运行docker守护进程。我知道我可以通过在运行我的docker镜像期间暴露外部docker进程轻松实现这一点,但不幸的是我无法控制我的图像运行方式。我不能使用DIND。

因此,我想在Dockerfile或我的入口点的某个脚本中启动docker服务。我试着调用命令:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *Path = [NSString stringWithFormat:@"%@/%@%@",documentsDirectory,@"file"@".txt"];
[str writeToFile:Path atomically:YES encoding:NSUTF8StringEncoding error:&error];

NSString *fn=@"file";
NSString *searchFilename =[fn stringByAppendingString:@".txt"]; // name of the PDF you are searching for
NSArray *pathss = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectorys = [pathss objectAtIndex:0];
NSDirectoryEnumerator *direnum = [[NSFileManager defaultManager] enumeratorAtPath:documentsDirectorys];
NSString *documentsSubpath;
BOOL fileFound = false;

while (documentsSubpath = [direnum nextObject])
{
    if (![documentsSubpath.lastPathComponent isEqual:searchFilename]) {
        continue;
        fileFound=NO;
    }

    NSLog(@"found %@", documentsSubpath);
    fileFound =YES;
}
if(fileFound){
   NSLog(@"File Found");///this line is execute when i run this code
}

在映像中下载并安装docker后,在某些脚本CMD service docker start 中包含此命令并调用它:

start.sh

这些都不起作用。是否可以按我的意愿运行docker,或者我做错了什么,或者在我的执行环境中是不可能的?

2 个答案:

答案 0 :(得分:1)

根据您的要求,您不能。

要在docker容器内运行docker服务,您需要修改容器的启动方式,以便为默认情况下外部docker服务限制提供内部docker服务权限。

答案 1 :(得分:0)

我建议使用DIND容器(Docker中的Docker)

$query=tep_db_query("SELECT 
    o.orders_products_id
  , o.orders_products_filename 
  , o.orders_date
  , c.customers_id
  , c.customers_firstname
  , c.customers_lastname
  , c.customers_email_address  
FROM orders_products_download as o ,customers as c ,deviceid_ebcreader as d
WHERE (o.customers_id=c.customers_id) && (o.customers_id!=d.user_id) 
LIMIT {$startpoint} , {$limit}");  

指向Docker Hub的链接:https://hub.docker.com/_/docker/