LoginSignup
1
1

More than 5 years have passed since last update.

ホストOSにインストールされていないコマンドを、Dockerコンテナ経由で使う

Last updated at Posted at 2019-04-26

TL;DR

  • OSにインストールされていないコマンドを使いたい
  • ホストOSにインストールして環境を変えてしまうのは避けたい
  • Dockerが使えるなら、コンテナをコマンドとして使ってもいいのでは

動機

TL;DRのまま。

ホストOSに入っていないコマンドを使いたかったのだけれど、ホストOSにコマンドをインストールして環境を変更するということは避けたかった。

Dockerは使ってもOKという状況下。

docker container run -i --rmを使う

で、これをうまいことするには、Dockerコンテナを使ってコマンドを実行してあげればいいのでは、と。

docker container runのオプションで、-i--rmを使えばよいでしょう。

オプションの意味は、以下のとおり。

  • -i--interactive) … 標準入力を受け取る
  • --rm … 終了時にコンテナを削除する

docker container run

例えば、こんな感じで使います。

Ubuntu Linux 18.04に含まれているPerlを使う。

$ echo 'Hi! my name is taro' | docker container run -i --rm ubuntu:18.04 perl -wp -e 's/taro/jiro/'
Hi! my name is jiro

終了時にはコンテナも削除されるので、後始末も気にする必要はありません。

初回は、Dockerイメージをpullする時間はかかりますけどね。

他の例。MeCabを使ってみるなど。

$ echo 'すもももももももものうち' | docker container run -i --rm kimtaro/mecab mecab
すもも   名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも  名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも  名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち  名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

覚えておくと、小ネタとして使えるかもしれません。

よく使うコマンドなどあれば、aliasとして登録してみるなどありかもでしょうね。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1