Carpe Diem

  Top > スポンサー広告> Docker > nsenter で簡単にDockerコンテナの中に入る  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

nsenter で簡単にDockerコンテナの中に入る

2014 - 09/15 [Mon] - 13:52

Vagrant と違って Docker コンテナって容易には中にアクセスできないですよね。
かと言って不要なSSHデーモンを入れるのもちょっとおかしい。
そこで便利なのが nsenter というツールです。ちなみにこれインストールも docker を使うというちょっとおもしろいものです。

◆環境
Ubuntu 14.04
Docker 1.0.1


◆インストール

$ docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter

vオプションを使うことで、コンテナ内で作ったバイナリファイルを、ホスト側にインストール(保存)しています。


◆コンテナに入ってみる
前回作ったApacheコンテナに入ってみましょう。
書き方は以下です。

$ sudo docker-enter {CONTAINER ID}

このとき sudo が必要なので注意して下さい。

まずApacheコンテナのIDを調べてみます。


$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
50d29075796d apache:latest /usr/sbin/apache2ctl 22 minutes ago Up 22 minutes 0.0.0.0:80->80/tcp prickly_engelbart

これで 50d29075796d と分かったのではいってみます。

$ sudo docker-enter 50d29075796d
root@50d29075796d:~#

bashコンソールに変わりましたね。Apacheコンテナの中にいるはずなのでApacheプロセスが立ち上がっているはずです。

# ps aux | grep apache
root 1 0.0 0.1 4444 716 ? Ss 04:23 0:00 /bin/sh /usr/sbin/apache2ctl -D FOREGROUND
root 15 0.0 0.6 71300 3320 ? S 04:23 0:00 /usr/sbin/apache2 -D FOREGROUND
www-data 16 0.0 0.5 426064 2736 ? Sl 04:23 0:01 /usr/sbin/apache2 -D FOREGROUND
www-data 17 0.0 0.4 360464 2212 ? Sl 04:23 0:01 /usr/sbin/apache2 -D FOREGROUND
root 85 0.0 0.1 8864 652 ? S+ 04:47 0:00 grep --color=auto apache

フォアグラウンドで立ちあげたApacheプロセスが確認できました。

これで急に何かログとか仕込みたくなったときにも毎回ビルドせずに済みます。
他にも nsinit というツールがあるのですが、こちらはちょっとインストールが面倒らしいです。

以上です。お疲れ様でした。


ソース:
Dockerfileとdocker buildコマンドでDockerイメージの作成 (2/2)
RHEL/CentOS 6で Docker に nsinit/nsenter する
nsinit が上手く行かなくて困っていたら nsenter があまりにもあっさりだった件

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。