我有一个 docker-compose 项目,我想通过 systemd 进行控制。在暴发户中,我会使用如下所示的脚本:
description "Start/Stop server"
author "Jim Cortez"
start on filesystem and started docker
stop on runlevel [!2345]
respawn limit 3 240
pre-start script
# wait (if necessary) for our docker context to be accessible
while [ ! -f /projects/my_server/docker-compose.yml ]
do
sleep 1
done
/usr/local/bin/docker-compose -f /projects/my_server/docker-compose.yml up -d
end script
script
sleepWhileAppIsUp(){
while docker ps | grep "$1" >/dev/null; do
sleep 2
done
}
sleepWhileAppIsUp "my_server"
end script
# stop docker container after the stop …
Run Code Online (Sandbox Code Playgroud) 在我的 Ubuntu 15.04 x64 Docker(1.9.1-cs2,build 4ade326)主机上,我的内存使用量过大,目前总计约 940 MB 物理内存和约 1 GB 交换内存。据介绍top
,Docker 负责消耗大约 780 MB 的交换内存。我怎样才能弄清楚为什么 Docker 使用了如此多的交换?
我主要运行一个 Node.js Docker 容器,它似乎不会消耗那么多内存。内存使用量也在几个小时内上升,因为它在启动后相当适中。
nginx 不会在启动时启动,但手动启动正常。日志说的是
nginx: [emerg] host not found in upstream "{some hostname}" in /etc/nginx/conf.d/some_site.conf
nginx: configuration file /etc/nginx/nginx.conf test failed
Failed to start A high performance web server and a reverse proxy server.
nginx.service: Unit entered failed state.
nginx.service: Failed with result 'exit-code'.
Run Code Online (Sandbox Code Playgroud)
似乎在启动时 dns 还没有准备好,nginx 正在尝试查找我作为反向代理使用的主机名。