Для docker-compose
вы можете использовать следующие docker-compose.yml
version: '2'
services:
nginx:
image: nginx
container_name: nginx-container
networks:
static-network:
ipv4_address: 172.20.128.2
networks:
static-network:
ipam:
config:
- subnet: 172.20.0.0/16
#docker-compose v3+ do not use ip_range
ip_range: 172.28.5.0/24
с хоста, с которым вы можете протестировать, используя:
docker-compose up -d
curl 172.20.128.2
Современный docker-compose
будет автоматически создавать контейнеры с статический ip для вас.
Чтобы найти статические ips всех контейнеров в вашей docker-compose
в одной строке, используйте:
for s in `docker-compose ps -q`; do echo ip of `docker inspect -f "{{.Name}}" $s` is `docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $s`; done
Если вы хотите автоматизировать, вы можете использовать что-то вроде этого пример gist
Вы можете использовать API окон, чтобы переместить окно консоли. Используйте DllImport для объявления функций WinApi, которые вы хотите использовать:
[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll", SetLastError = true)]
internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
Затем вызовите их: например,
IntPtr ptr = GetConsoleWindow();
MoveWindow(ptr, 0, 0, 1000, 400, true);
Вы можете использовать дополнительную функцию WinApi как SetWindowPos
. Синтаксис DllImport можно найти в Интернете для PInvoke
и имени функции. Следуйте объяснениям там и в MSDN.