public IEnumerable <Image> Get() { IEnumerable <Image> list = null; #if DEBUG var content = System.IO.File.ReadAllText("wwwroot/resource/data/imageList.json"); list = JsonConvert.DeserializeObject <Image[]>(content); #else DockerClientUtils.UseDockerClient(client => { list = client.Images.ListImagesAsync(new ImagesListParameters()) .Result .Select(t => new Model.Image() { Id = t.ID, Created = t.Created, SharedSize = t.SharedSize, Size = t.Size, VirtualSize = t.VirtualSize, RepoTags = string.Join(",", t.RepoTags), Labels = t.Labels }); }); #endif return(list); }
public IActionResult Create([FromBody] CreateContainerConfig config) { try { string id = null; DockerClientUtils.UseDockerClient(client => { var ret = client.Containers.CreateContainerAsync(new CreateContainerParameters() { Shell = config.Shell, Entrypoint = config.Entrypoint, WorkingDir = config.WorkingDir, Volumes = config.Volumes, Image = config.Image, Cmd = config.Cmd, Env = config.Env, ExposedPorts = config.ExposedPorts, Name = config.Name, HostConfig = config.HostConfig, NetworkingConfig = config.NetworkingConfig }).Result; id = ret.ID; }); return(new ObjectResult(Get(id))); } catch (Exception ex) { return(base.StatusCode(500, $"Add Error.\r\n{ExceptionUtils.GetExceptionMessage(ex)}")); } }
public IEnumerable <Container> Get() { IEnumerable <Container> list = null; #if DEBUG var content = System.IO.File.ReadAllText("wwwroot/resource/data/containerList.json"); list = JsonConvert.DeserializeObject <Container[]>(content); #else DockerClientUtils.UseDockerClient(client => { list = client.Containers.ListContainersAsync(new ContainersListParameters() { All = true }) .Result .Select(t => new Model.Container() { Id = t.ID, Name = t.Names?.LastOrDefault().Substring(1), Port = string.Join(", ", t.Ports?.Select(p => $"{p.IP}:{p.PublicPort}->{p.PrivatePort}/{p.Type}")), Command = t.Command, Created = t.Created, Image = t.Image, Status = t.Status }); }); #endif return(list); }
public IActionResult Delete(string id) { try { DockerClientUtils.UseDockerClient(client => { client.Images.DeleteImageAsync(id, new ImageDeleteParameters()).Wait(); }); return(base.Ok()); } catch (Exception ex) { return(base.StatusCode(500, $"Delete Error.\r\n{ExceptionUtils.GetExceptionMessage(ex)}")); } }
public IActionResult Delete(string id) { try { if (id.StartsWith(Environment.MachineName)) { return(base.StatusCode(403, $"Can't operate SimpleDockerUI container.")); } DockerClientUtils.UseDockerClient(client => { client.Containers.RemoveContainerAsync(id, new ContainerRemoveParameters() { }).Wait(); }); return(base.Ok()); } catch (Exception ex) { return(base.StatusCode(500, $"Delete Error.\r\n{ExceptionUtils.GetExceptionMessage(ex)}")); } }
public IActionResult Stop(string id) { try { if (id.StartsWith(Environment.MachineName)) { return(base.StatusCode(403, $"Can't operate SimpleDockerUI container.")); } bool ret = false; DockerClientUtils.UseDockerClient(client => { ret = client.Containers.StopContainerAsync(id, new ContainerStopParameters()).Result; }); if (ret) { return(base.Ok()); } return(base.StatusCode(500, $"Stop Error.\r\nStop Method return 'false'.")); } catch (Exception ex) { return(base.StatusCode(500, $"Stop Error.\r\n{ExceptionUtils.GetExceptionMessage(ex)}")); } }