PracticeDev/study_clang/system-test/control-docker.c

140 lines
3.1 KiB
C

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int print()
{
printf("\n");
printf("************* Docker控制程序 **************\n");
printf("************ 1. 启动Docker程序 **************\n");
printf("************ 2.启动Docker容器 ***********\n");
printf("************ 3.停止Docker容器 *************\n");
printf("************ 4.重启Docker容器 *************\n");
printf("************ 5.进入Docker容器 *************\n");
printf("************ 6.正在运行的容器 *************\n");
printf("************ 7.删除Docker容器 *************\n");
printf("************* 0.退出控制程序 ****************\n");
printf("\n");
}
void StartDocker(){
system("sudo systemctl start docker");
}
void StartNode(){
system("docker run -itd --name ubuntu-test ubuntu /bin/bash");
}
void StopNode(){
char cmd[100] = "docker stop ";
char str[20];
printf("Please enter the CONTAINER ID: ");
scanf("%s",str);
strcat(cmd, str);
// printf(cmd);
system(cmd);
}
void RestartNode(){
char cmd[100] = "docker restart ";
char str[20];
printf("Please enter the CONTAINER ID: ");
scanf("%s",str);
strcat(cmd, str);
// printf(cmd);
system(cmd);
}
void EnterNode(){
char cmd[100] = "docker exec -it ";
char str[20];
printf("Please enter the CONTAINER ID: ");
scanf("%s",str);
strcat(cmd, str);
strcat(cmd, " /bin/bash");
// printf(cmd);
system(cmd);
}
void RunningNode(){
system("docker ps");
}
void DeleteNode(){
char cmd[100] = "docker rm -f ";
char str[20];
printf("Please enter the CONTAINER ID: ");
scanf("%s",str);
strcat(cmd, str);
// printf(cmd);
system(cmd);
}
int Operation(int operID)
{
switch (operID)
{
case 1:
printf("1.启动Docker\n");
StartDocker();
break;
case 2:
printf("2.启动Docker实例容器\n");
StartNode();
break;
case 3:
printf("3.停止Docker容器\n");
StopNode();
break;
case 4:
printf("4.重启Docker容器\n");
RestartNode();
break;
case 5:
printf("5.进入Docker容器\n");
EnterNode();
break;
case 6:
printf("6.正在运行的容器\n");
RunningNode();
break;
case 7:
printf("7.删除Docker容器\n");
DeleteNode();
break;
case 0:
return 0;
default:
printf("Error!\n");
}
}
int main(int argc,char *argv[])
{
int operID;
//const char* operID = NULL;
if(argc>1)
{
if(strlen(argv[1])>1)
{
printf("Operation ID Error!\n");
return 0;
}
operID = argv[1][0] - '0';
Operation(operID);
//operID = argv[1];
//char id[2];
//sprintf(id, operID);
}
else
{
print();
scanf("%d",&operID);
// getchar();
// printf("%d",c);
Operation(operID);
}
return 0;
}