登录虚拟机中容器的shell命令后如何运行命令?

时间:2019-06-18 01:55:13

标签: bash shell docker containers kubernetes-pod

当我运行此命令时

kubectl exec -it $(kubectl get pods | grep container-name | awk '{print $1}') /bin/sh

我装入我的容器

/src #

现在-我想再添加2条命令

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 #

1 个答案:

答案 0 :(得分:1)

不需要进入docker容器中进行以下操作

kubectl exec -it $(kubectl get pods | grep container-name | awk '{print $1}') -- ls -lrt /app/Http/Controllers;

kubectl将执行--之后的容器内的每个命令。您也可以挂载目标目录并在localhost上执行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