140 lines
3.1 KiB
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;
|
||
|
}
|