Tag: 系统

结构化日志logging从Docker容器中logging

在Docker容器中写入结构化日志以logging日志的最佳方式是什么? 例如,我有一个使用sd_journal_send写入的应用程序,而不是更改应用程序,我尝试通过 -v / var / log / systemd / journal:/ var / log / systemd / journal 它适用于我的Ubuntu 16.04桌面,但不适用于运行应用程序的CoreOS实例(使用Ubuntu 16.04基础镜像)。 我不太明白为什么。 也许有更好的方式发送到期刊? docker journald输出日志选项有什么限制? 它没有出现,它支持的应用程序不仅仅是写消息字段。 – 所以我发现我需要-v /dev/log:/dev/log 但是还有另一个问题,那就是启动Docker容器的服务文件没有关联。 手动添加UNIT:servicename.service没有解决它。 所以当查看和运输服务的日志时,它与exe相关联,而不是与容器或服务相关联。 谁遇到过这些问题,你是如何解决这些问题的? 好吧,让我扩大一点。 AC程序可以这样写入systemd日志: #include <systemd/sd-journal.h> #include <unistd.h> #include <stdlib.h> int main(int argc, char *argv[]) { sd_journal_send("MESSAGE=Hello World!", "MESSAGE_ID=52fb62f99e2c49d89cfbf9d6de5e3555", "PRIORITY=5", "HOME=%s", getenv("HOME"), "TERM=%s", getenv("TERM"), […]

在CoreOS的同一个Docker容器中运行两个服务?

我对Docker和CoreOS来说还挺新的。 我想我对容器的概念和它们之间的联系有点不清楚。 我试图build立一个基于CoreOS的服务器,运行两个服务:一个自定义服务器(称为myserver)和一个memcached服务器(只能由myserver访问)。 所以我想我在CoreOS机器上安装了一个myserver.service文件,可以使用这样的一行来成功启动upi myserver: ExecStart=/bin/bash -c '/usr/bin/docker start -a my_container || /usr/bin/docker run –name my_container my-image /usr/local/bin/myserver' 所以我的问题是,为了启动memcached服务器,是否在CoreOS中创build一个新的memcached.service文件? 如果是这样,它是否应该使用与自定义服务器相同的容器“my_container”? 如果他们不使用相同的容器,myserver是否能够访问memcached服务器?

Dockerconfiguration使用systemdconfiguration样式

我注意到,Docker文档正在逐渐走向系统化的初始化方法和configuration。 我有点不确定如何在使用systemdconfiguration方法时向Docker添加“不安全的registry”项。 在使用Docker 1.6.1版本的同时,我可以添加多个不安全的registry项,方法是添加文件: /etc/sysconfig/docker 一条非常类似于以下的线: INSECURE_REGISTRY='–insecure-registry myregistry.companyx.com:5010 –insecure-registry myregistry.companyx.com:5011' 并使用以下命令重新启动Docker: sudo service docker restart 随着Docker 1.8.2我一直在寻找如何以“systemd”的方式做到这一点。 最接近我来到任何文档是以下2页: https://docs.docker.com/articles/systemd/ https://coreos.com/os/docs/latest/registry-authentication.html 上述两个build议我需要添加一个文件到一个名为: /etc/systemd/system/docker.service.d 这些页面中的第二个build议一个名为: /etc/systemd/system/docker.service.d/50-insecure-registry.conf 它也谈到“#cloud-config write_files: – path:”,我根本没有关注。 我忽略了我不理解的东西,并创build了一个名为: /etc/systemd/system/docker.service.d/50-insecure-registry.conf 包含以下内容: [Service] Environment='DOCKER_OPTS=–insecure-registry="myregistry.companyx.com:5010"' 并使用以下命令重新启动docker: sudo systemctl restart docker 结果让我觉得是时候回家了。 我想添加多个不安全的registry项,但还没有想出如何做到这一点。 另外,对于单一入口的成功我还有很长的路要走。 STUFF added 2 days later 在页面的帮助下: http://nknu.net/how-to-configure-docker-on-ubuntu-15-04/ 我在使用放入目录的文件configurationDocker方面取得了一些进展: /etc/systemd/system/docker.service.d 我一直想念的东西是一个重写默认的条目: [Service] ExecStart=/usr/bin/docker -d -H […]

为所有Docker容器设置全局环境variables

有没有可能设置env。 所有未来的Docker容器的variables? 这将有助于为特定的主机设置http代理,而无需更改Docker镜像文件或运行容器的方式(因此相同的Docker容器可以在不同的“上下文”上正常运行)。 也许通过/etc/default/docker ?

Docker上的Nginx服务在1GB RAM节点上提供了比4GB RAM节点更好的性能

我有1个主节点和2个工作节点。 Worker1 – 1GB RAM,1vCore Worker2 – 4Gb RAM,2vCore我有一个新的6 Nginx服务运行在两个节点上的不同端口。 当我进行Apache Benchmarktesting时,它显示了Worker1的服务的性能(每秒请求数)比Worker2的稍好。 我不明白为什么会有更好的performance。 其他细节 – 我在nginx上下载了最新的图像,分配了端口值,并开始在nginx欢迎页面上执行testing。

Systemd-journald.service日志循环不起作用

systemd-journald.service日志目录增长并且不停止在设定值MaxLevelStore = 800M。 它认为这是由于在服务器上运行docker容器造成的。 当主机上运行了很多Docker容器时,是否有一个很好的方法来控制systemd-journald.service的MaxLevelStore?

Docker服务在启动后不启动

我想弄清楚为什么我的docker服务不会在重新启动时自动运行。 这里是: $ sudo cat /etc/systemd/system/docker.service [Service] ExecStart= ExecStart=/usr/bin/dockerd –insecure-registry=some-registry 当我尝试: $ sudo systemctl enable docker.service没有任何反应。 list-unit-files下这个服务的状态: $ sudo systemctl list-unit-files | grep docker docker.service static 如果我手动启动服务( sudo systemctl start docker.service ),但它按预期工作。 任何想法为什么?

我们如何设置docker容器在重新启动和故障时重新启动?

我希望docker集装箱出来 在host reboot或在host reboot docker is restarted时 maximum retries On failure 。 我知道docker重新启动策略, unless-stopped , always在同一个方向,但我希望他们在最大重试后失败。 以下步骤作为解决scheme的思考 docker集装箱No restart policy systemd-docker在重启时重启容器。 有一个更好的方法吗?

systemd容器:我怎样才能自动运行一个bash脚本?

在成功地遵循这些RHEL系统容器指令之后 ,我现在每次启动时都会喜欢容器来运行bash脚本。 不过,我只想运行一次 。 这对我来说似乎不是一种“服务”。 我不想启动容器,然后手动运行bash脚本(例如,docker exec -it …)。 我应该让systemd单元文件启动脚本,然后禁用我的bash脚本中的服务? 这似乎有点像黑客,不是吗? 更新:要回答评论者,bash脚本需要systemd。 因此,首先systemd必须启动,然后脚本运行,安装软件,然后发出systemctl启动命令。 是的,我知道你在想什么:使用RUN安装软件,然后让systemd启动它,但不幸的是,我不能这样做这个项目。 我没写的脚本预计systemd将会运行。 此外,该脚本在容器中运行,在命名卷中。

Docker移除Dangling图像命令在CoreOS系统单元文件中不起作用

我想在我的CoreOS实例中定期执行Docker dangling image remove命令作为Cron作业。 但由于某些原因,虽然systemd单位计时器成功执行晃荡docker图像不会删除。 但单独运行命令将成功删除悬挂的泊坞窗图像。 我的服务文件 (remove-docker-dangling.service) [Unit] Description=Removing Docker Dangling Images Cron Service After=docker.service Requires=docker.service [Service] Type=oneshot ExecStart=/bin/docker rmi $(docker images –quiet –filter "dangling=true") 我的定时器文件 (remove-docker-dangling.timer) [Unit] Description=Run remove-docker-dangling.service every 30 minutes [Timer] OnCalendar=*:0/30