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目录或控制器文件。