вторник, 9 октября 2018 г.

Docker на macOS. Мощный пост

Статья MS
Статья infostart

Запустить образ контейнера (и присвоить ему имя sql1)docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=' -p 1433:1433 --name sql1 -d mcr.microsoft.com/mssql/server:2017-latest

Запустить образ контейнера (и присвоить ему имя sql2) с пробросом контейнера в нашу сеть(?)
docker run -d --network host --name sql2 -e 'SA_PASSWORD=' -e ACCEPT_EULA=Y mcr.microsoft.com/mssql/server:2017-latest

Просмотр контейнеров
docker ps -a

Запуск интерактивной оболочки bash внутри запущенного контейнераdocker exec -it sql1 "bash"

Командная строка SQL/opt/mssql-tools/bin/sqlcmd -S localhost -U SA

ctrl-D

Узнать состояние порта на сервере при помощи PowerShell
$server="yourserver"; $port=1433; echo ((new-object Net.Sockets.TcpClient).Connect($server,$port)) "$server is listening on TCP port $port";
yourserver - может быть и именем и IP

Получить IP-адрес контейнера Docker
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' sql1

Перевод статьи
Использовать сеть хоста
Если вы используете hostсетевой драйвер для контейнера, сетевой стек этого контейнера не изолирован от хоста Docker. Например, если вы запускаете контейнер, который привязывается к порту 80 и вы используете hostсеть, приложение контейнера будет доступно на порту 80 на IP-адресе хоста.
Драйвер сетевого хоста работает только на узлах Linux и не поддерживается в Docker для Mac, Docker для Windows или Docker EE для Windows Server.
В Docker 17.06 и выше вы также можете использовать hostсеть для службы роя, перейдя --network hostк docker container createкоманде. В этом случае управляющий трафик (трафик, связанный с управлением роем и службой) по-прежнему отправляется через оверлейную сеть, но отдельные контейнеры службы роуминга отправляют данные с помощью хост-сети и портов Docker-daemon. Это создает некоторые дополнительные ограничения. Например, если контейнер обслуживания связывается с портом 80, только один контейнер обслуживания может запускаться на заданном узле рой.
Если ваш контейнер или служба не публикует никаких портов, network host не влияет.

Много команд тут
Полное практическое руководство по Docker: с нуля до кластера на AWS
Сети Docker изнутри: как Docker использует iptables и интерфейсы Linux
Назначить статический IP-адрес контейнера Docker

Комментариев нет:

Отправить комментарий