Я только начал рассматривать Docker как способ переноса нашего старого серверного приложения C ++ в контейнер (чтобы мы могли запускать несколько изолированных серверов на одной физической машине).Все прошло нормально (на моем компьютере с Windows 10), я могу подготовить образ и запустить контейнер, и все это работает.Поэтому я подумал, что было бы полезно иметь небольшой REST API внутри контейнера, чтобы внешние клиенты могли узнать информацию о запущенных серверах / контейнерах.Я нашел ac # api
https://github.com/microsoft/Docker.DotNet
, который работает локально с таким кодом
HttpContext.Current.Server.ScriptTimeout = 300;
DockerClient client = new DockerClientConfiguration(new Uri("npipe://./pipe/docker_engine")).CreateClient();
IList<ContainerListResponse> containers = await client.Containers.ListContainersAsync(
new ContainersListParameters()
{
Limit = 10,
});
Итак, я вошел в vs2017, чтобы создать проект webapi,включил поддержку докеров и переместил фрагмент кода в контроллер, чтобы я мог видеть, смогу ли я просмотреть хост, на котором запущен контейнер.К сожалению, команда просто выдает ошибку тайм-аута.Я предполагаю, что должен что-то сделать, чтобы получить доступ к движку докера хоста.Итак, я попытался добавить это в файл docker-compose.yml
version: '3.4'
services:
serverinfoapp:
image: ${DOCKER_REGISTRY-}serverinfoapp
volumes:
- source: '\\.\pipe\docker_engine'
target: '\\.\pipe\docker_engine'
type: npipe
build:
context: .\ServerInfoApp
dockerfile: Dockerfile
, но он все еще не работает.
Я начинающий с Docker, поэтому любая помощь будет принята
С уважением