小编Dro*_*dOS的帖子

孤岛Docker挂载主机卷?

我只是检查了我的/ var/lib/docker/volumes文件夹,发现它正在破坏名为Docker UUID的文件夹,每个文件夹都包含一个config.json文件,其中的内容沿着

{"ID":"UUID","Path":"/path/to/mounted/volume","IsBindMount":true,"Writable":true}
Run Code Online (Sandbox Code Playgroud)

哪里

/path/to/mounted/volume
Run Code Online (Sandbox Code Playgroud)

是主机上的文件夹的路径,该文件夹在某个时刻使用-v开关安装到docker容器上.我有这样的文件夹可以追溯到我使用Docker进行实验的开始,即大约3周前.

有问题的容器很久以前就被停了下来,并且很久以前就停泊了这些容器,所以我看不出那些条目没有超过他们的销售日期.这引出了一个问题 - 剩下的就是我看到了一个错误,还是需要从/ var/lib/docker/volumes手动丢弃这些条目?

docker mounted-volumes

62
推荐指数
3
解决办法
2万
查看次数

Docker容器中的Nginx SSL

我已经配置了一个Docker容器来运行Nginx并设置/ etc/nginx/sites-available/default文件,如下所示

server 
{
 listen 80 default_server;
 listen [::]:80 default_server ipv6only=on;

 root /usr/share/nginx/html;
 index index.php index.html index.htm;

 server_name example.com;

 location / {
            try_files $uri $uri/ /index.html;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
          root /usr/share/nginx/html;
    }


    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;   
        include fastcgi_params;
 }

}

server 
{
 listen 443;

 root /usr/share/nginx/html;
 index index.php index.html index.htm;

 server_name example.com;

 ssl    on;
 ssl_certificate    /etc/ssl/certs/ssl-cert-snakeoil.pem;
 ssl_certificate_key …
Run Code Online (Sandbox Code Playgroud)

nginx docker

23
推荐指数
1
解决办法
4万
查看次数

在一个docker容器中运行多个应用程序

这个问题是我继续探索Docker的一部分,并在某些方面跟进了我之前的一个问题.我现在已经了解了如何通过将一堆Docker容器链接在一起来获得完整的应用程序堆栈(实际上是一个迷你VPS).例如,可以创建一个堆栈,为Apache + PHP5提供一堆扩展+ Redis + MemCached + MySQL,它们都运行在Ubuntu之上,有或没有额外的数据容器,以便于序列化用户数据.

一切都非常优雅.但是,我不得不怀疑...... 运行那个小VPS的5个容器(自从Apache + PHP5进入一个容器后,我计算5个而不是6个).那么假设我有100个这样的VPS在运行?这意味着我有500个容器在运行!我理解这里的论点 - 很容易编写新的应用程序堆栈,更新堆栈的一个组件等.但是这样操作没有不必要的开销吗?

假设我这样做了

  • 将我的所有应用程序放在一个容器中
  • 写一个小shell脚本

    !/ bin/bash服务memcached启动服务redis-server start .... service apache2 start while:do:done

在我的Dockerfile中

ADD start.sh /usr/local/bin/start.sh
RUN chmod +x /usr/local/bin/start.sh

....
ENTRYPOINT ["/bin/bash"]
CMD ["/usr/local/bin/start.sh"]
Run Code Online (Sandbox Code Playgroud)

然后我启动并运行该容器

docker run -d -p 8080:80 -v /var/droidos/site:/var/www/html -v /var/droidos/logs:/var/log/apache2 droidos/minivps
Run Code Online (Sandbox Code Playgroud)

而且我在做生意.现在,当我想以编程方式关闭该容器时,我可以通过执行一个单一的docker命令来实现.

当一个谷歌为他们提供类似性质的问题有很多.除了上面提到的论点之外,对于每个容器一个应用程序方法给出的最普遍的原因之一是"这就是Docker设计工作的方式".我想知道什么

  • 运行N个链接容器的x100实例有什么缺点 - 在主机上通过速度,内存使用等方式进行权衡?
  • 我在这里做了什么有什么问题?

docker

21
推荐指数
2
解决办法
1万
查看次数

已停止的Docker容器的资源使用情况

Docker可以轻松停止和重启容器.它还能够暂停然后取消暂停容器.Docker文档声明

退出容器时,将保留文件系统的状态及其退出值.您可以启动,停止和重新启动容器.进程从头开始重新启动(它们的内存状态不会保留在容器中),但文件系统就像容器停止时一样.

我通过建立一个带memcached运行的容器来测试它,然后将值写入memcache

  • 停止然后重新启动容器 - memcached值消失了
  • 暂停然后取消暂停容器 - memcached值仍然完好无损

在文档的某个地方 - 我再也找不到精确的文档 - 我读到停止的容器不消耗CPU或内存.然而:

  • 我认为文件系统状态保留的事实意味着容器仍然占用主机文件系统上的一些空间?
  • 是否存在与系统中已停止容器的10秒甚至100秒相关的性能损失(主机磁盘空间消耗除外)?例如,它是否使Docker更难以启动和管理新容器?
  • 最后,如果Paused容器在Unpaaused时保持其内存状态 - 正如它们记住memcached密钥的能力所证明的那样 - 它们对CPU和内存有不同的影响吗?

对于任何可能澄清这些问题的人,我都是最有责任的.

lxc docker

19
推荐指数
1
解决办法
2779
查看次数

Android通知setSound无效

在我的针对API 23+的混合Cordova Android应用中,我想使用自定义声音进行通知.为此,我做了以下工作

  • plugin.xml我声明的应用程序中使用的单个自定义插件的文件中<resource-file src="src/android/res/unysound.mp3" target="res/raw/mysound.mp3" />'.

打开APK作为zip存档我看到mp3文件实际上最终在`res/raw/mysound.mp3'. - 构建通知时,我执行以下操作

    Notification notification = new Notification.Builder(context)
    .setDefaults(0) //turns off ALL defaults
    .setVibrate(vibrate)  /sets to vibrate
    ....
    .setSound(uri).build();
Run Code Online (Sandbox Code Playgroud)

哪里

Uri uri = Uri.parse("android.resource://" + ctxt.getPackageName() + "/raw/mysound.mp3");
Run Code Online (Sandbox Code Playgroud)

这似乎是我在google网站上发现的一些文章中指出的配方,甚至在SO上的其他帖子中也是如此.然而,当我发出通知时,我听不到预期的声音.我可能做错了什么?


下面的答案没有帮助,因为在我的混合Cordova应用程序与自定义插件尝试构建APK的上下文中引发了一个错误的行 class R not known/found...

android uri android-notifications android-6.0-marshmallow

15
推荐指数
5
解决办法
1万
查看次数

内容可编辑文本编辑器

我已经尝试了几个HTML编辑器,包括TinyMCE,CKEditor和现在的NicEdit.NicEdit在一个方面很好 - 它很容易定制.但是,我发现它们都有产生非常差的HTML的倾向.不一定是这样,但是因为他们没有做很多工作来正确解释无效的用户操作,例如在没有先做出选择的情况下尝试设置某些内容.

最终使用包含类似内容的HTML非常容易

<span style='color:#ff0000'><span style='color:#ff0000'><span style='color:#ff0000'>Red</span></span></span>
Run Code Online (Sandbox Code Playgroud)

我是否正确地认为这几乎是内容可编辑概念的限制?如果目的是电子邮件或在诸如此类的论坛上发布帖子,那么糟糕的HTML并不重要,但如果生成的HTML必须在网页的上下文中使用,那么生活得相当不舒服.如果所有这些都是对的,那么替代方案是什么?也许是一个基于Flash的插件编辑器,可以生成更好的HTML并且更难以解释用户想要做什么?

我认为原则上可以研究生成的输出并在必要时清除六角形的跨度,但这可能是一项艰巨的任务.

html wysiwyg contenteditable

11
推荐指数
1
解决办法
4214
查看次数

是否有针对CSS3供应商前缀的浏览器兼容性弃用表?

这里有人会发布一个网站,提供一个简洁的摘要,说明哪些供应商特定的CSS3扩展 - 例如-moz-border-radius- 仍然需要或可以弃用?

从我所看到的所有最近版本的Chrome,Safari和Opera(忘记IE,我可以在没有它的情况下为我当前的应用程序生活)基本上很高兴能够使用没有供应商前缀的W3C属性.

w3c css3

10
推荐指数
2
解决办法
3825
查看次数

Web服务器变量$ _SERVER ['REMOTE_ADDR']是否可靠?

我一般认为在PHP脚本中我可以测试$_SERVER['REMOTE_ADDR'] 以建立发出请求的IP地址.但是,我开始怀疑事情是否有点复杂.这是场景

  • 我运行了许多服务器,称之为A,BC - 用户必须"注册"
  • 我运行一个单独的注册服务器,称之为S,在向服务器A,B和C发送完整的注册请求之前,首先验证用户的凭据等.

该请求以

file_get_contents('https://url?data=value')
Run Code Online (Sandbox Code Playgroud)

在服务器A,B和C,我很天真地测试$_SERVER['REMOTE_ADDR'],以确定该请求实际上由服务器来小号.令我惊讶的是,结果变得曲解和变化

  1. 值in REMOTE_ADDR是与注册服务器S交互的人类用户的IP地址
  2. 值in REMOTE_ADDR是注册服务器的IP地址,S - 我一直希望看到
  3. REMOTE_ADDR是来自我托管服务器S的虚拟服务器上的IP地址池中的另一个IP地址

我真的不需要执行这个额外的验证测试,所以我可以完全放弃它.尽管如此,这个结果让我感到意外,所以我很想知道这里是否有人可以了解正在发生的事情.

我应该提一下,我在服务器A,B和C上的Lighttpd上运行PHP 5.5,在服务器S上的Apache 2上运行PHP 5.3 .

php superglobals

10
推荐指数
1
解决办法
1726
查看次数

设备重启后启动Phonegap插件

我正在为Android开发混合Phonegap应用程序.该应用程序只使用我正在开发的一个插件.这个插件做了三件事

  • 地理位置变化的手表(前景和背景)
  • 设置半小时警报以执行某些定期任务
  • 收听推送消息.我使用pushy.me服务,我使用的代码遵循他们的文档.

我已经实现了代码以使应用程序调整到设备重新启动时有些惶恐,但结果很简单(感谢我在SO上的其他线程中找到的信息)

package com.example.plugin;

import org.apache.cordova.CordovaInterface;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaWebView;
import android.content.Context;
import android.content.BroadcastReceiver;
import android.content.pm.PackageManager;
import android.app.Activity;

import android.content.Intent;

public class Rebooter extends BroadcastReceiver
{
 @Override
 public void onReceive(Context context, Intent intent) 
 {
  Intent i = new Intent(context, MyAppCordovaPlugin.class); 
  i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  context.startActivity(i);  
 }
}
Run Code Online (Sandbox Code Playgroud)

我这样注册了重启接收器

<receiver android:enabled="true" android:name=".Rebooter" 
 android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
 <intent-filter>
  <action android:name="android.intent.action.BOOT_COMPLETED" />
  <category android:name="android.intent.category.DEFAULT" />
 </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

MyAppCordovaPlugin是我的应用程序/插件的入口点 - 扩展CordovaPlugin该类的插件.这是我在那里做的

public class MyAppCordovaPlugin extends CordovaPlugin
{
 private …
Run Code Online (Sandbox Code Playgroud)

java android reboot geolocation cordova

10
推荐指数
1
解决办法
807
查看次数

jQuery最近 - 它是如何工作的?

jQuery 文档说明

对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素.

在我看来,这里的操作词是祖先.这意味着,如果一个人使用

elem.closest(selector)
Run Code Online (Sandbox Code Playgroud)

和选择器不是elem的祖先,什么都不会被发现.但是,在它读取的同一文档中略低一点

向上移动DOM树,直到找到所提供选择器的匹配项

我解释为意味着它会一直到<body>标签来获取它的人.注意,这里没有提到父母祖先.

我写了一个快速的小提琴,似乎表明这是前一种说法是正确的.但是,我认为最好在这里发布,看看是否有其他人可以证实这一点.

jquery

8
推荐指数
2
解决办法
1903
查看次数