Skip to content

Commit 31dfd4c

Browse files
authored
Merge pull request #20804 from remyleone/get-shell-running-container
add French version for get-shell-running-container
2 parents 7bf9754 + 84da639 commit 31dfd4c

File tree

2 files changed

+155
-0
lines changed

2 files changed

+155
-0
lines changed
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
---
2+
title: Obtenez un shell dans un conteneur en cours d'exécution
3+
content_template: templates/task
4+
---
5+
6+
{{% capture overview %}}
7+
8+
Cette page montre comment utiliser `kubectl exec` pour obtenir un shell dans un conteneur en cours d'exécution.
9+
10+
{{% /capture %}}
11+
12+
{{% capture prerequisites %}}
13+
14+
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
15+
16+
{{% /capture %}}
17+
18+
{{% capture steps %}}
19+
20+
## Obtenir un shell dans un conteneur
21+
22+
Dans cet exercice, vous allez créer un pod contenant un conteneur.
23+
Le conteneur exécute une image nginx.
24+
Voici le fichier de configuration du Pod:
25+
26+
{{< codenew file="application/shell-demo.yaml" >}}
27+
28+
Créez le Pod:
29+
30+
```shell
31+
kubectl apply -f https://k8s.io/examples/application/shell-demo.yaml
32+
```
33+
34+
Vérifiez que le conteneur est en cours d'exécution:
35+
36+
```shell
37+
kubectl get pod shell-demo
38+
```
39+
40+
Obtenez un shell pour le conteneur en cours d'exécution:
41+
42+
```shell
43+
kubectl exec -it shell-demo -- /bin/bash
44+
```
45+
46+
{{< note >}}
47+
48+
Le double tiret "-" est utilisé pour séparer les arguments que vous souhaitez passer à la commande des arguments kubectl.
49+
50+
{{< /note >}}
51+
52+
Dans votre shell, listez le répertoire racine:
53+
54+
```shell
55+
root@shell-demo:/# ls /
56+
```
57+
58+
Dans votre shell, testez d'autres commandes.
59+
Voici quelques exemples:
60+
61+
```shell
62+
root@shell-demo:/# ls /
63+
root@shell-demo:/# cat /proc/mounts
64+
root@shell-demo:/# cat /proc/1/maps
65+
root@shell-demo:/# apt-get update
66+
root@shell-demo:/# apt-get install -y tcpdump
67+
root@shell-demo:/# tcpdump
68+
root@shell-demo:/# apt-get install -y lsof
69+
root@shell-demo:/# lsof
70+
root@shell-demo:/# apt-get install -y procps
71+
root@shell-demo:/# ps aux
72+
root@shell-demo:/# ps aux | grep nginx
73+
```
74+
75+
## Écriture de la page racine de nginx
76+
77+
Regardez à nouveau le fichier de configuration de votre Pod.
78+
Le pod a un volume `emptyDir` et le conteneur monte le volume dans `/usr/share/nginx/html`.
79+
80+
Dans votre shell, créez un fichier `index.html` dans le répertoire `/usr/share/nginx/html`:
81+
82+
```shell
83+
root@shell-demo:/# echo Hello shell demo > /usr/share/nginx/html/index.html
84+
```
85+
86+
Dans votre shell, envoyez une requête GET au serveur nginx:
87+
88+
```shell
89+
root@shell-demo:/# apt-get update
90+
root@shell-demo:/# apt-get install curl
91+
root@shell-demo:/# curl localhost
92+
```
93+
94+
La sortie affiche le texte que vous avez écrit dans le fichier `index.html`:
95+
96+
```shell
97+
Hello shell demo
98+
```
99+
100+
Lorsque vous avez terminé avec votre shell, entrez `exit`.
101+
102+
## Exécution de commandes individuelles dans un conteneur
103+
104+
Dans une fenêtre de commande ordinaire, pas votre shell, répertoriez les variables d'environnement dans le conteneur en cours d'exécution:
105+
106+
```shell
107+
kubectl exec shell-demo env
108+
```
109+
110+
Essayez d'exécuter d'autres commandes.
111+
Voici quelques exemples:
112+
113+
```shell
114+
kubectl exec shell-demo ps aux
115+
kubectl exec shell-demo ls /
116+
kubectl exec shell-demo cat /proc/1/mounts
117+
```
118+
119+
{{% /capture %}}
120+
121+
{{% capture discussion %}}
122+
123+
## Ouverture d'un shell lorsqu'un pod possède plusieurs conteneurs
124+
125+
Si un pod a plusieurs conteneurs, utilisez `--container` ou `-c` pour spécifier un conteneur dans la commande `kubectl exec`.
126+
Par exemple, supposons que vous ayez un pod nommé my-pod et que le pod ait deux conteneurs nommés main-app et helper-app.
127+
La commande suivante ouvrirait un shell sur le conteneur de l'application principale.
128+
129+
```shell
130+
kubectl exec -it my-pod --container main-app -- /bin/bash
131+
```
132+
133+
{{% /capture %}}
134+
135+
{{% capture whatsnext %}}
136+
137+
* [kubectl exec](/docs/reference/generated/kubectl/kubectl-commands/#exec)
138+
139+
{{% /capture %}}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
name: shell-demo
5+
spec:
6+
volumes:
7+
- name: shared-data
8+
emptyDir: {}
9+
containers:
10+
- name: nginx
11+
image: nginx
12+
volumeMounts:
13+
- name: shared-data
14+
mountPath: /usr/share/nginx/html
15+
hostNetwork: true
16+
dnsPolicy: Default

0 commit comments

Comments
 (0)