我通过将 cpuset 指定为 1 个内核来启动一个 docker 容器:
docker run --cpuset-cpus="0"...
Run Code Online (Sandbox Code Playgroud)
第二个通过将 cpuset 指定为 4 个内核:
docker run --cpuset-cpus="0-3"...
Run Code Online (Sandbox Code Playgroud)
我在每个容器内启动了一个加载进程,并监控了两个容器的 CPU 消耗。
加载过程如下:
ffmpeg input > output
Run Code Online (Sandbox Code Playgroud)
我观察到两个容器之间的执行时间没有改善(没有加速)。
你知道为什么没有改进吗?具有 4 个核心的容器应该比 1 个核心容器运行得更快,对吗?
注意:对 1core 容器使用 top
CPU0%=100%
CPU1%=0
CPU2%=0
CPU3%=0
Run Code Online (Sandbox Code Playgroud)
使用 top 作为 4core 容器,docker 随机选择 4 个内核之一来启动进程。有时它会影响每个核心的 30%
CPU0%=0 CPU0%=30% CPU0%=0
CPU1%=100% or CPU0%=30% or CPU0%=0
CPU2%=0 CPU0%=30% CPU0%=0
CPU3%=0 CPU0%=30% CPU0%=100%
Run Code Online (Sandbox Code Playgroud) 在ubuntu中安装mysql时apt-get install mysql-server,会在安装过程中询问mysql用户名和密码.
但是当使用dockerfile构建mysql映像时,如何提供用户名和密码?
我尝试使用dockerfile如下:
FROM ubuntu:14.04
apt-get update
apt-get install -y mysql-server
Run Code Online (Sandbox Code Playgroud)
但是在构建映像时,我发现我们可以在没有用户名和密码的情况下登录mysql.
当我使用dockerfile构建我的图像时,如何设置用户名和密码?
Python中有一个非常方便的函数:repr()应用于包含空白字符的字符串时,将打印出该字符串的表示形式,而不会导致任何人为的错误理解。
例如:
$ python -c "print repr(r'''abcde\rfghi\tjklmn\nopqr\bstuv\fwxyz''')"
'abcde\\rfghi\\tjklmn\\nopqr\\bstuv\\fwxyz'
Run Code Online (Sandbox Code Playgroud)
我如何在bash中使用printf做同样的事情?
我正在寻找的理想工具/技巧将完全打印出来
'abcd\refjh\bijk'
Run Code Online (Sandbox Code Playgroud)
用于命令
printf "abcd\refjh\bijk" | <something>
Run Code Online (Sandbox Code Playgroud)
其背后的目的是改进一种测试工具,该工具可以打印两个字符串之间的差异:
http_response_code=$(curl -s --head http://httpbin.org/ | head -1) # will put "HTTP/1.1 200 OK\r" in $http_response_code
assert_equal "HTTP/1.1 200 OK" "$http_response_code"
> failed: strings do not match
> expected: 'HTTP/1.1 200 OK'
> actual: 'HTTP/1.1 200 OK'
Run Code Online (Sandbox Code Playgroud)
如您所见,当前的实现让用户对失败的原因一无所知,感到困惑。
理想情况下,我希望有以下输出:
> failed: strings do not match
> expected: 'HTTP/1.1 200 OK'
> actual: 'HTTP/1.1 200 OK\r'
Run Code Online (Sandbox Code Playgroud)
当前尝试:
printf $'\a\b\e\E\f\n\r\t\v\\\'\"' | cat …我在osx上使用docker via boot2docker.
我有2个主机:site1.loc.test.com并site2.loc.test.com指向docker host的ip地址.
两者都应该通过80和443端口可用.
所以我jwilder/nginx-proxy用于反向代理目的.
但事实上,当我docker-compose每次尝试通过80端口打开时,我都会运行所有这些,我会重定向到443 (301 Moved Permanently).
可能是我错过了一些jwilder/nginx-proxy配置?
proxy:
image: jwilder/nginx-proxy
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- certs:/etc/nginx/certs
ports:
- "80:80"
- "443:443"
site1:
image: httpd:2.4
volumes:
- site1:/usr/local/apache2/htdocs
environment:
VIRTUAL_HOST: site1.loc.test.com
expose:
- "80"
site2:
image: httpd:2.4
volumes:
- site2:/usr/local/apache2/htdocs
environment:
VIRTUAL_HOST: site2.loc.test.com
expose:
- "80"
Run Code Online (Sandbox Code Playgroud) https reverse-proxy docker docker-compose jwilder-nginx-proxy
我在我们的应用程序中遇到了一个与 MySQL 表名相关的错误。我们的应用程序将表名生成为 24 位十六进制数字(即:)5e09c9c09e9ba0cceccb3701。
有一段时间一切都很好,但突然间我们开始看到某些表名的 SQL 语法错误。这个错误很容易修复:我们需要保护表名。
SQL 语法错误:
select * from 5e09c9c09e9ba0cceccb3701;
Run Code Online (Sandbox Code Playgroud)
没有错误:
select * from `5e09c9c09e9ba0cceccb3701`;
Run Code Online (Sandbox Code Playgroud)
为什么5e09需要保护以开头的表名?
我浏览了 MySQL 文档中的保留字或十六进制文字表示法,但我找不到对5e09SQL 语句中特殊解释的任何解释。
而且,如果有人知道,还有什么其他特殊前缀也可能会破坏 SQL 语句的语法?
我找到了一个运行和的docker image devdb/kibana.但是我想将这两个配置文件传递给这个docker容器(即elasticsearch.yml)和(即config.js)Elasticsearch 1.5.2Kibana 4.0.2ElasticsearchKibana
我可以用这个图像本身吗?或者为此我必须建立一个单独的docker容器?
尝试在NetBeans中运行Groovy/Grails应用程序时收到以下错误消息:
Error occurred running Grails CLI: Bad <init> method call from inside of a branch
Run Code Online (Sandbox Code Playgroud)
Grails版本:3.0.4 Java:jdk1.8.0_20
我想用带有--env-file选项的环境变量来运行我的docker容器,就像docker doc:docker run命令中提到的那样
我尝试使用以下内容创建env.list在我的主目录中命名的文件/home/jw/data:
SSL_CERTIFICATE_PATH=/opt/onlyoffice/Data/certs/onlyoffice.crt
SSL_KEY_PATH=/opt/onlyoffice/Data/certs/onlyoffice.key
SSL_DHPARAM_PATH=/opt/onlyoffice/Data/certs/dhparam.pem
Run Code Online (Sandbox Code Playgroud)
之后我将目录添加/home/jw/data/到我的$PATH环境变量中:
PATH=$PATH:/home/jw/data/; export PATH
Run Code Online (Sandbox Code Playgroud)
在同一个shell上,我启动了这样的docker容器:
sudo docker run -i -t -d --name onlyoffice-document-server onlyoffice/documentserver --env-file /home/jw/data/env.list debian env
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
Error response from daemon: Cannot start container 45ff897e0cfdc676f4f0bac98e027e2c567558a173a7f80c02ba6dc86482a176: [8] System error: exec: "--env-file": executable file not found in $PAT
Run Code Online (Sandbox Code Playgroud)
我也尝试设置$PATHunder root并执行上面提到的run命令,并显示相同的错误消息.
我错过了什么?
我有一个复杂串联的查询.如果结果不为空,那么就像连接几个子选择的结果一样.它在我们的运行MySQL 5.1的开发服务器上工作正常(虽然复杂性让我有点不舒服)但我们的生产服务器运行5.0报告
FUNCTION database.concat does not exist
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会这样?不幸的是,升级不是一个选择,所以除非有人有一个好主意,否则我几乎不会重写这份报告.
查询如下(是的,我意识到我可怕地滥用mysql.让我们暂时把它放在一边.如果有人知道如何通过别名引用子选择方法,这将是方便的,但我从来没有能够做到它,因此重复的subselect.NULL如果有任何参数NULL,concat返回,因此if语句.)
select (concat(if((select
concat(if(b.foo is not null, b.foo, ""),
" ",
if(f.bar is not null, f.bar, ""))
from `foo_table` as f
left join `bar_table` as b
on b.SOME_ID = f.SOME_ID
where f.STUDENT_ID = t.STUDENT_ID
and bar.NewID = t.OldID order by bar.id limit 1) is not null,
(select
concat(if(b.foo is not null, b.foo, ""),
" ",
if(f.bar is not null, f.bar, ""))
from `foo_table` as f
left join `bar_table` …Run Code Online (Sandbox Code Playgroud)