Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在登录到VM中容器的shell命令后运行命令?_Bash_Shell_Docker_Containers_Kubernetes Pod - Fatal编程技术网

Bash 如何在登录到VM中容器的shell命令后运行命令?

Bash 如何在登录到VM中容器的shell命令后运行命令?,bash,shell,docker,containers,kubernetes-pod,Bash,Shell,Docker,Containers,Kubernetes Pod,当我运行这个命令时 kubectl exec -it $(kubectl get pods | grep container-name | awk '{print $1}') /bin/sh 我ssh到我的容器中 /src # 现在-我想添加两个以上的命令,所以我这样做了 kubectl exec -it $(kubectl get pods | grep container-name | awk '{print $1}') /bin/sh ; cd app/Http/Controllers

当我运行这个命令时

kubectl exec -it $(kubectl get pods | grep container-name | awk '{print $1}') /bin/sh
我ssh到我的容器中

/src #
现在-我想添加两个以上的命令,所以我这样做了

kubectl exec -it $(kubectl get pods | grep container-name | awk '{print $1}') /bin/sh ; cd app/Http/Controllers; ls -lrt; 
但我仍然看到这一点

/src #
/src # cd app/Http/Controllers; ls -lrt;                                                
total 44                                                                                
-rw-r--r--    1 root     root           361 Jun 11 11:27 Controller.php                   
-rw-r--r--    1 root     root          1734 Jun 11 11:27 ClientController.php             
-rw-r--r--    1 root     root          1702 Jun 11 11:27 BroadcastController.php        
-rw-r--r--    1 root     root          5257 Jun 17 15:24 NodeController.php              
-rw-r--r--    1 root     root          2844 Jun 17 20:21 AccountController.php          
/src/app/Http/Controllers #
我应该看到这个

/src #
/src # cd app/Http/Controllers; ls -lrt;                                                
total 44                                                                                
-rw-r--r--    1 root     root           361 Jun 11 11:27 Controller.php                   
-rw-r--r--    1 root     root          1734 Jun 11 11:27 ClientController.php             
-rw-r--r--    1 root     root          1702 Jun 11 11:27 BroadcastController.php        
-rw-r--r--    1 root     root          5257 Jun 17 15:24 NodeController.php              
-rw-r--r--    1 root     root          2844 Jun 17 20:21 AccountController.php          
/src/app/Http/Controllers #

无需进入docker容器内,请执行以下操作

kubectl exec -it $(kubectl get pods | grep container-name | awk '{print $1}') -- ls -lrt /app/Http/Controllers;
kubectl将执行容器中在-。您还可以装载目标目录并在本地主机上执行ls。创建一个类似于此处的yaml文件

apiVersion: v1
kind: Pod
metadata:
  name: test-container
spec:
  containers:
  - name: my-container
    image: my-container
    volumeMounts:
    - name: my-storage
      mountPath: /data/
  volumes:
  - name: my-storage
    hostPath:
        # directory location on host
        path: /opt/data
        # this field is optional
        type: Directory

然后运行这个命令kubectl apply-f your file.yaml

你能试试吗:kubectl exec-it$kubectl get pods | grep container name | awk'{print$1}'-bash-c cd app/Http/Controllers&&ls-lrt或kubectl exec-it$kubectl get pods | grep container name | awk'{print$1}'-sh-c cd-app/Http/Controllers&&ls-lrt@ThanhNguyenVan当前位置似乎不起作用。。。看这个,它似乎不起作用。。。查看此已编辑的“我的答案”,运行它,查看它是否正常工作。问题是在-bash或sh执行命令之后,cd不是命令的一部分。查看下面的链接了解更多信息“你怎么不需要/bin/sh?”你最新的回答返回类似的错误:这不是bug,只是告诉你没有/app/http目录或控制器文件。