Это сервер CentOS 6.6 с графическим интерфейсом. Я поместил свои команды запуска в /etc/rc.local. На этом сервере работают службы Docker и Nginx. Поэтому я поместил команду запуска контейнера с отображением портов в rc.local.
Контейнеры Docker запускаются, но на сервере я не получаю GUI, идет только CLI, если я прокомментирую все команды в rc.local, то GUI появится после перезагрузки.
Файл rc.local содержит ...
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
sysctl net.ipv4.conf.all.forwarding=1
sleep 5
setenforce Permissive
sleep 5
iptables -F
sleep 5
service nginx stop
sleep 5
service nginx start
sleep 5
service docker stop
sleep 5
service docker start
sleep 5
docker stop $(docker ps -a -q)
sleep 5
docker rm $(docker ps -a -q)
sleep 5
docker run -p port:port/tcp -d memcached:latest
sleep 5
docker run -d -v /mnt/path:/mnt/path -p port:port/tcp imagename
sleep 5
docker run -d -p port:port/tcp -p port:port/udp imagename
sleep 5
mount -t nfs 192.168.0.3:/mnt/path/ /mnt/path/
Что-то в твоем rc.local
не прекращается. Выполнение этого файла должно завершиться до завершения обычного процесса загрузки и запуска X.
Поскольку вы говорите, что все контейнеры докеров запускаются, я предполагаю, что mount
линия по какой-то причине не завершается. Подтвердите, что это не так, выясните, почему, и исправьте. А еще лучше убрать все это из rc.local
и в соответствующие файлы запуска, как рекомендует Майкл, не в последнюю очередь потому, что все эти sleep
s заставит загрузку занять на минуту больше, чем следовало бы.