我只是检查了我的/ 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容器来运行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) 这个问题是我继续探索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设计工作的方式".我想知道什么
Docker可以轻松停止和重启容器.它还能够暂停然后取消暂停容器.Docker文档声明
退出容器时,将保留文件系统的状态及其退出值.您可以启动,停止和重新启动容器.进程从头开始重新启动(它们的内存状态不会保留在容器中),但文件系统就像容器停止时一样.
我通过建立一个带memcached运行的容器来测试它,然后将值写入memcache
在文档的某个地方 - 我再也找不到精确的文档 - 我读到停止的容器不消耗CPU或内存.然而:
对于任何可能澄清这些问题的人,我都是最有责任的.
在我的针对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...
我已经尝试了几个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并且更难以解释用户想要做什么?
我认为原则上可以研究生成的输出并在必要时清除六角形的跨度,但这可能是一项艰巨的任务.
这里有人会发布一个网站,提供一个简洁的摘要,说明哪些供应商特定的CSS3扩展 - 例如-moz-border-radius
- 仍然需要或可以弃用?
从我所看到的所有最近版本的Chrome,Safari和Opera(忘记IE,我可以在没有它的情况下为我当前的应用程序生活)基本上很高兴能够使用没有供应商前缀的W3C属性.
我一般认为在PHP脚本中我可以测试$_SERVER['REMOTE_ADDR']
以建立发出请求的IP地址.但是,我开始怀疑事情是否有点复杂.这是场景
该请求以
file_get_contents('https://url?data=value')
Run Code Online (Sandbox Code Playgroud)
在服务器A,B和C,我很天真地测试$_SERVER['REMOTE_ADDR']
,以确定该请求实际上由服务器来小号.令我惊讶的是,结果变得曲解和变化
REMOTE_ADDR
是与注册服务器S交互的人类用户的IP地址REMOTE_ADDR
是注册服务器的IP地址,S - 我一直希望看到的REMOTE_ADDR
是来自我托管服务器S的虚拟服务器上的IP地址池中的另一个IP地址我真的不需要执行这个额外的验证测试,所以我可以完全放弃它.尽管如此,这个结果让我感到意外,所以我很想知道这里是否有人可以了解正在发生的事情.
我应该提一下,我在服务器A,B和C上的Lighttpd上运行PHP 5.5,在服务器S上的Apache 2上运行PHP 5.3 .
我正在为Android开发混合Phonegap应用程序.该应用程序只使用我正在开发的一个插件.这个插件做了三件事
我已经实现了代码以使应用程序调整到设备重新启动时有些惶恐,但结果很简单(感谢我在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) jQuery 文档说明
对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素.
在我看来,这里的操作词是祖先.这意味着,如果一个人使用
elem.closest(selector)
Run Code Online (Sandbox Code Playgroud)
和选择器不是elem的祖先,什么都不会被发现.但是,在它读取的同一文档中略低一点
向上移动DOM树,直到找到所提供选择器的匹配项
我解释为意味着它会一直到<body>标签来获取它的人.注意,这里没有提到父母或祖先.
我写了一个快速的小提琴,似乎表明这是前一种说法是正确的.但是,我认为最好在这里发布,看看是否有其他人可以证实这一点.