diff --git a/backend/app/dto/docker.go b/backend/app/dto/docker.go index 240794d9e..ce1c9b62e 100644 --- a/backend/app/dto/docker.go +++ b/backend/app/dto/docker.go @@ -16,7 +16,5 @@ type DaemonJsonConf struct { } type DockerOperation struct { - StopSocket bool `json:"stopSocket"` - StopService bool `json:"stopService"` - Operation string `json:"operation" validate:"required,oneof=start restart stop"` + Operation string `json:"operation" validate:"required,oneof=start restart stop"` } diff --git a/backend/app/service/docker.go b/backend/app/service/docker.go index 55efbffa5..d9b2daae9 100644 --- a/backend/app/service/docker.go +++ b/backend/app/service/docker.go @@ -39,37 +39,40 @@ type daemonJsonItem struct { } func (u *DockerService) LoadDockerStatus() string { - status := constant.StatusRunning - stdout, err := cmd.Exec("systemctl is-active docker") - if string(stdout) != "active\n" || err != nil { - status = constant.Stopped + client, err := docker.NewDockerClient() + if err != nil { + return constant.Stopped + } + if _, err := client.Ping(context.Background()); err != nil { + return constant.Stopped } - return status + return constant.StatusRunning } func (u *DockerService) LoadDockerConf() *dto.DaemonJsonConf { + ctx := context.Background() var data dto.DaemonJsonConf data.IPTables = true data.Status = constant.StatusRunning - stdout, err := cmd.Exec("systemctl is-active docker") - if string(stdout) != "active\n" || err != nil { + data.Version = "-" + client, err := docker.NewDockerClient() + if err != nil { data.Status = constant.Stopped + } else { + if _, err := client.Ping(ctx); err != nil { + data.Status = constant.Stopped + } + itemVersion, err := client.ServerVersion(ctx) + if err == nil { + data.Version = itemVersion.Version + } } data.IsSwarm = false stdout2, _ := cmd.Exec("docker info | grep Swarm") if string(stdout2) == " Swarm: active\n" { data.IsSwarm = true } - data.Version = "-" - client, err := docker.NewDockerClient() - if err == nil { - ctx := context.Background() - itemVersion, err := client.ServerVersion(ctx) - if err == nil { - data.Version = itemVersion.Version - } - } if _, err := os.Stat(constant.DaemonJsonPath); err != nil { return &data } @@ -206,10 +209,7 @@ func (u *DockerService) UpdateConfByFile(req dto.DaemonJsonUpdateByFile) error { func (u *DockerService) OperateDocker(req dto.DockerOperation) error { service := "docker" if req.Operation == "stop" { - service = "docker.service" - if req.StopSocket { - service = "docker.socket" - } + service = "docker.socket" } stdout, err := cmd.Execf("systemctl %s %s ", req.Operation, service) if err != nil { diff --git a/frontend/src/api/interface/container.ts b/frontend/src/api/interface/container.ts index cd04091cb..b085ff7c3 100644 --- a/frontend/src/api/interface/container.ts +++ b/frontend/src/api/interface/container.ts @@ -247,11 +247,6 @@ export namespace Container { export interface DaemonJsonUpdateByFile { file: string; } - export interface DockerOperate { - stopSocket: boolean; - stopService: boolean; - operation: string; - } export interface DaemonJsonConf { isSwarm: boolean; status: string; diff --git a/frontend/src/api/modules/container.ts b/frontend/src/api/modules/container.ts index 23c346d37..af10bf8fa 100644 --- a/frontend/src/api/modules/container.ts +++ b/frontend/src/api/modules/container.ts @@ -130,8 +130,8 @@ export const composeUpdate = (params: Container.ComposeUpdate) => { }; // docker -export const dockerOperate = (params: Container.DockerOperate) => { - return http.post(`/containers/docker/operate`, params); +export const dockerOperate = (operation: string) => { + return http.post(`/containers/docker/operate`, { operation: operation }); }; export const loadDaemonJson = () => { return http.get(`/containers/daemonjson`); diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 901542f27..9349f4d4a 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -565,10 +565,7 @@ const message = { composeOperatorHelper: '{1} operation will be performed on {0}. Do you want to continue?', setting: 'Setting', - stopHelper: 'docker service includes docker.service and docker.socket: ', - stopHelper2: - 'When docker.service is stopped, Docker.socket will keep listening state. When docker command request is listened, The docker.service will be pulled up again.', - stopHelper3: 'Stopping docker.socket will make the docker.service service unavailable', + operatorStatusHelper: 'This action will {0} Docker service, do you want to continue?', dockerStatus: 'Docker Service', daemonJsonPathHelper: 'Ensure that the configuration path is the same as that specified in docker.service.', mirrors: 'Registry mirrors', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 1340903c4..2ec21df2d 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -580,10 +580,7 @@ const message = { composeOperatorHelper: '将对 {0} 进行 {1} 操作,是否继续?', setting: '配置', - stopHelper: 'docker 服务包括 docker.service 和 docker.socket 两部分: ', - stopHelper2: - '停止 docker.service 时 docker.socket 将保持监听状态,当监听到 docker 命令请求时,会将 docker.service 重新拉起。', - stopHelper3: '停止 docker.socket 将导致 docker.service 服务不可用', + operatorStatusHelper: '此操作将{0}Docker 服务,是否继续?', dockerStatus: 'Docker 服务', daemonJsonPathHelper: '请保证配置路径与 docker.service 中指定的配置路径保持一致。', mirrors: '镜像加速', diff --git a/frontend/src/views/container/setting/index.vue b/frontend/src/views/container/setting/index.vue index 3d46fabac..e9a461b14 100644 --- a/frontend/src/views/container/setting/index.vue +++ b/frontend/src/views/container/setting/index.vue @@ -119,24 +119,6 @@ - - - {{ $t('container.stopHelper') }} -
  • {{ $t('container.stopHelper2') }}
  • -
  • {{ $t('container.stopHelper3') }}
  • -
    -
    - -
    -
    - -
    -