$ docker run --rm --name some-postgres -d postgres
cb2ddbb0f4f715077ebc1bfc2dc7151e5a6d07cd374c28be1db6d6ad77b9b16a
$ docker run -it --rm --link some-postgres:postgres postgres psql -h postgres -U postgres
psql (10.4 (Debian 10.4-2.pgdg90+1))
Type "help" for help.
postgres=#
Вы забыли-U postgres
Странный способ управления ВМ. Хороший способ --использовать systemd для автоматического запуска и остановки ВМ. Например:
/etc/systemd/system/qemu@.service
[Unit]
Description=QEMU virtual machine
[Service]
Environment="type=system-x86_64" "haltcmd=kill -INT $MAINPID"
EnvironmentFile=/etc/conf.d/qemu.d/%i
ExecStart=/usr/bin/qemu-${type} -name %i -nographic $args
ExecStop=/bin/sh -c ${haltcmd}
TimeoutStopSec=30
KillMode=none
[Install]
WantedBy=multi-user.target
... И, конечно же, конфигурация (s )для запуска ВМ:
/etc/conf.d/qemu.d/one
type="system-x86_64"
args="-enable-kvm -m 512 -hda /dev/vg0/vm1 -net nic,macaddr=DE:AD:BE:EF:E0:00 \
-net tap,ifname=tap0 -serial telnet:localhost:7000,server,nowait,nodelay \
-monitor telnet:localhost:7100,server,nowait,nodelay -vnc :0"
haltcmd="echo 'system_powerdown' | nc localhost 7100" # or netcat/ncat
# You can use other ways to shut down your VM correctly
#haltcmd="ssh powermanager@vm1 sudo poweroff"
...и еще одна конфигурация ВМ:
/etc/conf.d/qemu.d/two
args="-enable-kvm -m 512 -hda /srv/kvm/vm2.img -net nic,macaddr=DE:AD:BE:EF:E0:01 \
-net tap,ifname=tap1 -serial telnet:localhost:7001,server,nowait,nodelay \
-monitor telnet:localhost:7101,server,nowait,nodelay -vnc :1"
haltcmd="echo 'system_powerdown' | nc localhost 7101"
И так далее. Спасибо участникам ArchWiki за эту статью .
Черновик исходного сообщения и ответ @Oxyd полезны, когда вам нужно управлять каждой виртуальной машиной по отдельности.
Однако, если требуется выключить/запустить все виртуальные машины , можно использовать гостевые системы libvirt, как указано в документации Libvirt .
/etc/conf.d/libvirt-guests
или /etc/sysconfig/libvirt-guests
для CentOS, затем установите ON_SHUTDOWN=shutdown
иSHUTDOWN_TIMEOUT=0
libvirt-guests
, например systemctl enable libvirt-guests
иsystemctl start libvirt-guests