Skip to content

Commit

Permalink
ja-trans: Translate tasks/debug-application-cluster/get-shell-running…
Browse files Browse the repository at this point in the history
…-container/ kubernetes#13381
  • Loading branch information
yukinagae committed May 3, 2019
1 parent d494e95 commit 4aa364b
Show file tree
Hide file tree
Showing 2 changed files with 148 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
---
title: 実行中のコンテナへのシェルを取得する
content_template: templates/task
---

{{% capture overview %}}


このページは`kubectl exec`を使用して実行中のコンテナへのシェルを取得する方法を説明します。

{{% /capture %}}


{{% capture prerequisites %}}

{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}

{{% /capture %}}


{{% capture steps %}}

## コンテナへのシェルの取得

このエクササイズでは、1つのコンテナを持つPodを作成します。
コンテナはnginxのイメージを実行します。以下がそのPodの設定ファイルです:

{{< codenew file="application/shell-demo.yaml" >}}

Podを作成します:

```shell
kubectl create -f https://k8s.io/examples/application/shell-demo.yaml
```

コンテナが実行中であることを確認します:

```shell
kubectl get pod shell-demo
```

実行中のコンテナへのシェルを取得します:

```shell
kubectl exec -it shell-demo -- /bin/bash
```
{{< note >}}

ダブルダッシュの記号 "--" はコマンドに渡す引数とkubectlの引数を分離します。

{{< /note >}}

シェル内で、ルートディレクトリーのファイル一覧を表示します:

```shell
root@shell-demo:/# ls /
```

シェル内で、他のコマンドを試しましょう。以下がいくつかの例です:

```shell
root@shell-demo:/# ls /
root@shell-demo:/# cat /proc/mounts
root@shell-demo:/# cat /proc/1/maps
root@shell-demo:/# apt-get update
root@shell-demo:/# apt-get install -y tcpdump
root@shell-demo:/# tcpdump
root@shell-demo:/# apt-get install -y lsof
root@shell-demo:/# lsof
root@shell-demo:/# apt-get install -y procps
root@shell-demo:/# ps aux
root@shell-demo:/# ps aux | grep nginx
```

## nginxのルートページへの書き込み

Podの設定ファイルを再度確認します。Podは`emptyDir`ボリュームを持ち、
コンテナは`/usr/share/nginx/html`ボリュームをマウントします。

シェル内で、`/usr/share/nginx/html`ディレクトリに`index.htnml`を作成します。

```shell
root@shell-demo:/# echo Hello shell demo > /usr/share/nginx/html/index.html
```

シェル内で、nginxサーバーにGETリクエストを送信します:

```shell
root@shell-demo:/# apt-get update
root@shell-demo:/# apt-get install curl
root@shell-demo:/# curl localhost
```

出力に`index.html`ファイルに書き込んだ文字列が表示されます:

```shell
Hello shell demo
```

シェルを終了する場合、`exit`を入力します。

## コンテナ内での各コマンドの実行

シェルではない通常のコマンドウインドウ内で、実行中のコンテナの環境変数の一覧を表示します:

```shell
kubectl exec shell-demo env
```

他のコマンドを試します。以下がいくつかの例です:

```shell
kubectl exec shell-demo ps aux
kubectl exec shell-demo ls /
kubectl exec shell-demo cat /proc/1/mounts
```

{{% /capture %}}

{{% capture discussion %}}

## Podが1つ以上のコンテナを持つ場合にシェルを開く

Podが1つ以上のコンテナを持つ場合、`--container``-c`を使用して、`kubectl exec`コマンド内でコンテナを指定します。
例えば、my-podという名前のPodがあり、そのPodがmain-appとhelper-appという2つのコンテナを持つとします。
以下のコマンドはmain-appのコンテナへのシェルを開きます。

```shell
kubectl exec -it my-pod --container main-app -- /bin/bash
```

{{% /capture %}}


{{% capture whatsnext %}}

* [kubectl exec](/docs/reference/generated/kubectl/kubectl-commands/#exec)

{{% /capture %}}



6 changes: 6 additions & 0 deletions content/ja/includes/task-tutorial-prereqs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Kubernetesクラスターが必要、かつそのクラスターと通信するためにkubectlコマンドラインツールが設定されている必要があります。
まだクラスターがない場合、[Minikube](/ja/docs/setup/minikube)を使って作成するか、
以下のいずれかのKubernetesプレイグラウンドも使用できます:

* [Katacoda](https://www.katacoda.com/courses/kubernetes/playground)
* [Play with Kubernetes](http://labs.play-with-k8s.com/)

0 comments on commit 4aa364b

Please sign in to comment.