Tag: systemd

如何在容器环境中通过connmanbuild立集装箱networking?

我一直在使用Docker 1.13.1像我的目标,像树莓派和创build容器基于Ubuntu可以带来systemd的。 据我所知,Docker支持容器和docker0网桥的桥接模式,在每个容器中分配IP地址。 如果Connman服务没有在容器中启动,172.17.0.2被正确设置在容器中,但是connman服务启动,不是(随机设置容器中的ip)。 任何人都知道如何使用connman在容器中分配从docker0桥提供的ip地址?

pipe理docker图像投掷systemctl

我build立了一个包含Nginx的Docker镜像,它的configuration让我们可以称它为A,当我手动构build并运行它的时候,没有任何错误,但是当我决定pipe理Docker镜像的时候抛出systemctl它给我没有任何错误,但是当input:sudo systemctl status A.服务无效(死亡) 这是我的nginx.service文件 这里是托pipe抛出systemctl时给出的输出 我能做些什么来使其在启动时处于活动状态? 提前致谢

Dockerd –graph / – data-root似乎不能与systemd一起使用

添加完后: -g /vagrant/lib/docker 我尝试重新启动dockerd时遇到这些错误: ● docker.service – Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Thu 2017-08-03 21:20:50 UTC; 1s ago Docs: https://docs.docker.com Process: 6495 ExecStart=/usr/bin/dockerd -g /vagrant/lib/docker -H fd:// (code=exited, status=1/FAILURE) Main PID: 6495 (code=exited, status=1/FAILURE) CPU: 61ms Aug 03 21:20:50 badger systemd[1]: docker.service: Main process […]

Cron(和systemd)在docker的centos7中

我想在Docker中运行的centos7 OS中运行cron。 当我尝试启动crond时,我得到: Failed to get D-Bus connection: Operation not permitted 谷歌search显示,这是因为systemd没有运行。 但是,当我尝试开始,我得到: bash-4.2# /usr/lib/systemd/systemd –system –unit=basic.target systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN) Detected architecture x86-64. Set hostname to <7232ef24bdc8>. Initializing machine ID from random generator. […]

从systemd处理(重新)启动Docker容器意外退出

我有一个docker集装箱。在linux服务器docker容器的重新启动过程中,因此在systemd中停止了脚本文件,为容器重新启动添加脚本文件。此脚本也停止了chef-client。 但是脚本只执行了一半的命令。我不知道为什么在主客户端停止之后它会停止。之后它不会继续。 重新启动脚本: [root@server01 user1]# more /apps/service-scripts/docker-container-restart.sh #!/bin/bash echo "Starting to stop the chef-client automatic running.." service chef-client stop echo "Completed the stopping the chef-client automatic running" echo "Restart check… the Applicaiton Container $(date)" IsAppRunning=$(docker inspect -f '{{.State.Running}}' app-prod) echo "IsAppRunning state $IsAppRunning" if [ "$IsAppRunning" != "true" ]; then IsAppRunning=$(docker inspect -f '{{.State.Running}}' app-prod) […]

我怎样才能触发我的容器中重装的resolv.conf?

在启动时运行容器时,我注意到在systemd-resolved使用DHCP从缺省更新之前,有一些使用resolv.conf。 这意味着启动后过早启动的容器无法解决任何问题,需要重新启动才能使用正确的DNS设置。 对于rkt和Docker来说,这是因为不同的原因而发生的; Docker用于更新容器内resolv.conf的方法与overlay文件系统驱动程序不兼容,而且由于systemd-resolved并没有就地更新文件(而是创build了临时文件并重命名),因此rkt的绑定挂载不会更新容器所看到的内容。 目前我正在使用hacky systemd.unit来延迟docker.service和我的rkt pod所依赖的network-online.target。 [Unit] Description=Wait for DNS [Service] Type=oneshot RemainAfterExit=true ExecStart=/bin/sh -c 'while ! getent ahosts google.com >dev/null; do sleep 1; done' [Install] WantedBy=network-online.target 但是这大大延迟了我的启动时间 # systemd-analyze blame 18.068s wait-for-dns.service … 如果resolv.conf再次更改它将无济于事。 所以我想知道是否有一个更优雅的解决scheme,我的问题。 理想情况下,我希望能够在每次更改rkt和Docker容器时触发resolv.conf更新。

docker运行systemd服务启动,但立即退出,并重新启动,但docker运行从shell工作正常

在我的CentOS 7.2盒子上,使用Docker 1.10.3,我成功testing了以下内容(以root身份运行): docker run –name usljavadoc_server -p 80:80 -p 443:443 -v /opt/app/uslJavadoc/:/var/www/html/ -d eboraas/apache 自动部署到“/ opt / app / uslJavadoc”的内容可以从运行在容器中的Apache中获取。 所以,我的下一步是使用systemd来处理这个问题,所以我创build了“/etc/systemd/system/docker-usljavadoc.service”,内容如下: [Unit] Description=Apache serving USL Javadoc Requires=docker.service After=docker.service [Service] TimeoutStartSec=0 Restart=always ExecStart=/usr/bin/docker run –name usljavadoc_server -p 80:80 -p 443:443 -v /opt/app/uslJavadoc/:/var/www/html/ -d eboraas/apache ExecStop=/usr/bin/docker stop -t 2 usljavadoc_server ExecStopPost=/usr/bin/docker rm -f usljavadoc_server [Install] WantedBy=default.target […]

docker工人无法启动

我正在CentOS 7上运行docker。(来自centos repo的docker,不是docker-engine的docker)。 docker运行完美,但由于某些原因,我试图重新安装它。 不幸的是,docker.service拒绝启动,并显示我接下来的几个错误: Jan 24 15:19:28 fms-provisioner-4.novalocal systemd[1]: Job docker.service/start failed with result 'dependency'. Jan 24 15:21:30 fms-provisioner-4.novalocal systemd[1]: Dependency failed for Docker Application Container Engine. — Subject: Unit docker.service has failed — Defined-By: systemd — Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel — Unit docker.service has failed. — The result is dependency. Jan 24 15:21:30 fms-provisioner-4.novalocal systemd[1]: […]

如何在Systemd Unitconfiguration条件下使用'when'

如何在CoreOS上使用systemd单元的'when'或'if'条件语句? 例如:我想挂载一个目录,只有当一个variables设置为True(假设A == "True" ) 如此: – name: var-lib-docker.mount contents: | [Unit] Description=Mount ephemeral to /var/lib/docker [Mount] if (A == "true") # This part I'm not sure where and how to put. What=/dev/xvd1 Where=/var/lib/docker Type=ext4

如何使docker在systemd的centos下监听unix和TCP socket

我使用systemd在CentOS下安装了docker(v17.06.2-ce)。 Docker工作正常,并监听unix套接字。 现在我想让docker监听Unix套接字和TCP套接字2375.由于这是一个内部开发机器安全性没有问题。 我扫描了互联网发现了几篇文章,但仍然有一些问题。 我的理解是,我有systemd文件(docker.service)启动dockerd没有任何参数。 ExecStart =的/ usr /斌/ dockerd 然后在这里有文件demon.json,我可以列出我将要听的。 我的问题是在这里input什么。 它可能是。 { "hosts": [ "unix:///var/run/docker.sock", "tcp://0.0.0.0:2375" ] } 或者是这样的sockets激活这样的事情? { "hosts": [ "unix:///var/run/docker.sock", "fd://" ] } 然后,我发现第二件事是通过提供一个像这样的文件docker.sockst来准备systemd套接字 [Unit] Description=Docker Socket for the API PartOf=docker.service [Socket] ListenStream=tcp://0.0.0.0:2375 SocketMode=0660 SocketUser=root SocketGroup=docker [Install] WantedBy=sockets.target 但是这只会定义一个TCP套接字。 根据一篇文章,docker会响应TCP端口,但不再是unix套接字。 如果有人能指出细节,那将是很好的。