神戸学院大学 経営学部 林坂ゼミ

Docker 入門トップページ

« 戻る 次へ »

Docker 入門

形態素解析や構文解析を Docker で実行する

Windows (PowerShell) で形態素解析,構文解析を実行する

このページでは MeCab を使った形態素解析や CaboCha/南瓜 を使った構文解析が利用できる Docker イメージからコンテナを起動し Windows の PowerShell から利用する方法を説明します.なお Docker Hub (https://hub.docker.com/r/rinsaka/mecab-ubuntu-x86_64) で公開している Docker イメージを利用することにします.

目次に戻る

PowerShell のバージョン確認

まず PowerShell のバージョンを確認します.バージョン5系では文字コード周りの設計が古いため後の作業で文字化けが発生します.次のコマンドで PSVersion の値が「5.x...」の場合はこのページを参考に PowerShell 7系のインストールを行ってください.

PS C:\Users\rinsaka\Documents\work\mecab> $PSVersionTable ⏎

Name                           Value
----                           -----
PSVersion                      5.1.26100.4768
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.26100.4768
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1


PS C:\Users\rinsaka\Documents\work\mecab>

バージョン7系であれば問題ありません.

PS C:\Users\rinsaka\Documents\work\mecab> $PSVersionTable ⏎

Name                           Value
----                           -----
PSVersion                      7.5.4
PSEdition                      Core
GitCommitId                    7.5.4
OS                             Microsoft Windows 10.0.26100
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

PS C:\Users\rinsaka\Documents\work\mecab>

目次に戻る

イメージのダウンロード

はじめて rinsaka/mecab-ubuntu-x86_64 イメージを利用するには,docker pull コマンドを用いてイメージをダウンロードします.

PS C:\...\mecab> docker pull rinsaka/mecab-ubuntu-x86_64 ⏎
Using default tag: latest
latest: Pulling from rinsaka/mecab-ubuntu-x86_64
20043066d3d5: Pull complete
999549e01bbc: Pull complete
72672ac65cad: Pull complete
989d0ed799d5: Pull complete
d7666bafe989: Pull complete
d7ae6c329b58: Pull complete
44dcb2c46327: Pull complete
762f937b3b12: Pull complete
b8cf71171f50: Pull complete
00bce6f30e62: Pull complete
ee3ba61bc63e: Pull complete
4b69623f61ce: Pull complete
1cd898e6af7f: Pull complete
d60045286311: Pull complete
5d482770eeae: Pull complete
095c266f6366: Pull complete
Digest: sha256:8a5f5cd6387e205581b80d7bc7b41d2e7638827b1f27a358172b4e94e4ca3f5d
Status: Downloaded newer image for rinsaka/mecab-ubuntu-x86_64:latest
docker.io/rinsaka/mecab-ubuntu-x86_64:latest

What's next:
    View a summary of image vulnerabilities and recommendations → docker scout quickview rinsaka/mecab-ubuntu-x86_64
PS C:\...\mecab>

イメージがダウンロードできていることを次のコマンドで確認します.イメージのサイズが 10GB 以上あり,かなり大きなイメージであることに注意してください.

PS C:\...\mecab> docker image ls ⏎
REPOSITORY                    TAG       IMAGE ID       CREATED          SIZE
rinsaka/mecab-ubuntu-x86_64   latest    8048fd5cfb38   39 minutes ago   10.5GB
PS C:\...\mecab>

目次に戻る

サンプルデータの準備

作業ディレクトリに形態素解析や構文解析を行いたいテキストファイルを用意します.このとき文字コードは UTF-8 になっていることを前提にします.

sample.txt
今日はメロンパンを食べました.

目次に戻る

形態素解析の実行

次のコマンドでイメージからコンテナを作成し,テキストファイル(sample.txt)の形態素解析を実行できます.このとき,--rm オプションを指定しているので,実行終了時にコンテナは破棄されることに注意してください.文字化けが発生した場合は PowerShell のバージョンを確認してください.

PS C:\...\mecab> Get-Content -Raw .\sample.txt | docker run --rm -i rinsaka/mecab-ubuntu-x86_64 ⏎
今日    名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
メロンパン      名詞,固有名詞,一般,*,*,*,メロンパン,メロンパン,メロンパン
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
食べ    動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
まし    助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
.      記号,句点,*,*,*,*,.,.,.
EOS
        記号,一般,*,*,*,*,*
EOS
PS C:\...\mecab>

Write-Output コマンドレットは出力ストリームに指定のオブジェクトを出力するコマンドです.形態素解析したい文字列を Write-Output コマンドで指定する場合は次のコマンドを利用します.

PS C:\...\mecab> Write-Output "今日はメロンパンを食べましょう" ⏎
今日はメロンパンを食べましょう
PS C:\...\mecab> Write-Output "今日はメロンパンを食べましょう" | docker run --rm -i rinsaka/mecab-ubuntu-x86_64
今日    名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
メロンパン      名詞,固有名詞,一般,*,*,*,メロンパン,メロンパン,メロンパン
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
食べ    動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
ましょ  助動詞,*,*,*,特殊・マス,未然ウ接続,ます,マショ,マショ
う      助動詞,*,*,*,不変化型,基本形,う,ウ,ウ
        記号,一般,*,*,*,*,*
EOS
PS C:\...\mecab>

なお,Write-Output コマンドは省略できるので,次のコマンドでも動作します.

PS C:\...\mecab> "今日はメロンパンを食べましょう" ⏎
今日はメロンパンを食べましょう
PS C:\...\mecab> "今日はメロンパンを食べましょう" | docker run --rm -i rinsaka/mecab-ubuntu-x86_64
今日    名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
メロンパン      名詞,固有名詞,一般,*,*,*,メロンパン,メロンパン,メロンパン
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
食べ    動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
ましょ  助動詞,*,*,*,特殊・マス,未然ウ接続,ます,マショ,マショ
う      助動詞,*,*,*,不変化型,基本形,う,ウ,ウ
        記号,一般,*,*,*,*,*
EOS
PS C:\...\mecab>

目次に戻る

出力形式の変更

Docker の rinsaka/mecab-ubuntu-x86_64 イメージは上のように実行時にコマンドを省略すると mecab というコマンドが実行されます.明示的にコマンドとオプションを指定することで,形態素解析結果の出力形式を変更することができます.例えば出力形式を「分かち書き」(-Owakati) にするには,次のコマンドを実行します.

PS C:\...\mecab> Get-Content -Raw .\sample.txt | docker run --rm -i rinsaka/mecab-ubuntu-x86_64 mecab -Owakati
今日 は メロンパン を 食べ まし た .

PS C:\...\mecab>

別の例として出力形式を「茶筌」(-Ochasen) にすることもできます.

PS C:\...\mecab> Get-Content -Raw .\sample.txt | docker run --rm -i rinsaka/mecab-ubuntu-x86_64 mecab -Ochasen
今日    キョウ  今日    名詞-副詞可能
は      ハ      は      助詞-係助詞
メロンパン      メロンパン      メロンパン      名詞-固有名詞-一般
を      ヲ      を      助詞-格助詞-一般
食べ    タベ    食べる  動詞-自立       一段    連用形
まし    マシ    ます    助動詞  特殊・マス      連用形
た      タ      た      助動詞  特殊・タ        基本形
.      .      .      記号-句点
EOS
        記号-一般
EOS
PS C:\...\mecab>

目次に戻る

辞書の変更

形態素解析の実行時に利用する辞書を変更することも可能です.辞書を指定しなければ高機能な「mecab-ipadic-neologd」が利用されます.それ以外に「unidic」「ipadic-utf8」「debian」「juman-utf8」が利用可能です.「ipadic」も搭載されていますが,文字化けするはずです.

まず,辞書を指定せずに高機能な「mecab-ipadic-neologd」を使用します.この辞書では「メロンパン」が一つの単語として認識され,比較的新しい「きゃりーぱみゅぱみゅ」のような人名・固有名詞も多数搭載されています.

PS C:\...\mecab> Get-Content -Raw .\sample.txt | docker run --rm -i rinsaka/mecab-ubuntu-x86_64 mecab ⏎
今日    名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
メロンパン      名詞,固有名詞,一般,*,*,*,メロンパン,メロンパン,メロンパン
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
食べ    動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
まし    助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
.      記号,句点,*,*,*,*,.,.,.
EOS
        記号,一般,*,*,*,*,*
EOS
PS C:\...\mecab>

辞書は -dオプションで指定します.標準の辞書である「mecab-ipadic-neologd」を明示的に指定します.この場合は当然上と同じ結果になります.

PS C:\...\mecab> Get-Content -Raw .\sample.txt | docker run --rm -i rinsaka/mecab-ubuntu-x86_64 mecab -d /var/lib/mecab/dic/mecab-ipadic-neologd
今日    名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
メロンパン      名詞,固有名詞,一般,*,*,*,メロンパン,メロンパン,メロンパン
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
食べ    動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
まし    助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
.      記号,句点,*,*,*,*,.,.,.
EOS
        記号,一般,*,*,*,*,*
EOS
PS C:\...\mecab>

次に「unidic」を使用します.

PS C:\...\mecab> Get-Content -Raw .\sample.txt | docker run --rm -i rinsaka/mecab-ubuntu-x86_64 mecab -d /var/lib/mecab/dic/unidic
今日    名詞,普通名詞,副詞可能,,,,キョウ,今日,今日,キョー,今日,キョー,和,"","","","","","",体,キョウ,キョウ,キョウ,キョウ,"1","C3","",2509094191768064,9128
は      助詞,係助詞,,,,,ハ,は,は,ワ,は,ワ,和,"","","","","","",係助,ハ,ハ,ハ,ハ,"","動詞%F2@0,名詞%F1,形容詞%F2@-1","",8059703733133824,29321
メロン  名詞,普通名詞,一般,,,,メロン,メロン-melon,メロン,メロン,メロン,メロン,外,"","","","","","",体,メロン,メロン,メロン,メロン,"1","C1","",10309854279377408,37507
パン    名詞,普通名詞,一般,,,,パン,パン-pao,パン,パン,パン,パン,外,"","","","","","",体,パン,パン,パン,パン,"1","C3","",8533868122612224,31046
を      助詞,格助詞,,,,,ヲ,を,を,オ,を,オ,和,"","","","","","",格助,ヲ,ヲ,ヲ,ヲ,"","動詞%F2@0,名詞%F1,形容詞%F2@-1","",11381878116459008,41407
食べ    動詞,一般,,,下一段-バ行,連用形-一般,タベル,食べる,食べ,タベ,食べる,タベル,和,"","","","","","",用,タベ,タベル,タベ,タベル,"2","C1","M4@1",6220495691326081,22630
まし    助動詞,,,,助動詞-マス,連用形-一般,マス,ます,まし,マシ,ます,マス,和,"","","","","","",助動,マシ,マス,マシ,マス,"","動詞%F4@1","",9812325267808897,35697
た      助動詞,,,,助動詞-タ,終止形-一般,タ,た,た,タ,た,タ,和,"","","","","","",助動,タ,タ,タ,タ,"","動詞%F2@1,形容詞%F4@-2","",5948916285711019,21642
.      補助記号,句点,,,,,,.,.,,.,,記号,"","","","","","",補助,,,,,"","","",14027396882944,51
EOS
        補助記号,一般,,,,
EOS
PS C:\...\mecab>

今度は「ipadic-utf8」を指定します.

PS C:\...\mecab> Get-Content -Raw .\sample.txt | docker run --rm -i rinsaka/mecab-ubuntu-x86_64 mecab -d /var/lib/mecab/dic/ipadic-utf8
今日    名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
メロン  名詞,一般,*,*,*,*,メロン,メロン,メロン
パン    名詞,一般,*,*,*,*,パン,パン,パン
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
食べ    動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
まし    助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
.      記号,句点,*,*,*,*,.,.,.
EOS
        記号,一般,*,*,*,*,*
EOS
PS C:\...\mecab>

次に「debian」を指定します.

PS C:\...\mecab> Get-Content -Raw .\sample.txt | docker run --rm -i rinsaka/mecab-ubuntu-x86_64 mecab -d /var/lib/mecab/dic/debian
今日    名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
メロン  名詞,一般,*,*,*,*,メロン,メロン,メロン
パン    名詞,一般,*,*,*,*,パン,パン,パン
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
食べ    動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
まし    助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
.      記号,句点,*,*,*,*,.,.,.
EOS
        記号,一般,*,*,*,*,*
EOS
PS C:\...\mecab>

最後に「juman-utf8」という辞書を利用します.この辞書を利用すると「ドメイン」や「カテゴリ」などの情報も得られることが分かります.

PS C:\...\mecab> Get-Content -Raw .\sample.txt | docker run --rm -i rinsaka/mecab-ubuntu-x86_64 mecab -d /var/lib/mecab/dic/juman-utf8
今日    名詞,時相名詞,*,*,今日,きょう,代表表記:今日/きょう カテゴリ:時間
は      助詞,副助詞,*,*,は,は,連語
メロンパン      名詞,普通名詞,*,*,*,*,*
を      助詞,格助詞,*,*,を,を,連語
食べ    動詞,*,母音動詞,基本連用形,食べる,たべ,代表表記:食べる/たべる ドメイン:料理・食事
ました  接尾辞,動詞性接尾辞,動詞性接尾辞ます型,タ形,ます,ました,代表表記:ます/ます
.      特殊,句点,*,*,.,.,*
EOS
        特殊,記号,*,*,*,*,*
EOS
PS C:\...\mecab>

目次に戻る

CaboCha による係り受け解析

次に,CaboCha/南瓜を用いた係り受け解析(構文解析)を実行します.原則的には「mecab」コマンドの代わりに「cabocha」コマンドを指定するだけです.

PS C:\...\mecab> Get-Content -Raw .\sample.txt | docker run --rm -i rinsaka/mecab-ubuntu-x86_64 cabocha
      今日は---D
  メロンパンを-D
    食べました.
EOS

EOS
PS C:\...\mecab>

出力形式を変更するには -f1 オプションを指定します.これ以外にも -f0 から -f4 までが利用できるので色々試してください.

PS C:\...\mecab> Get-Content -Raw .\sample.txt | docker run --rm -i rinsaka/mecab-ubuntu-x86_64 cabocha -f1
* 0 2D 0/1 -1.880791
今日    名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
* 1 2D 0/1 -1.880791
メロンパン      名詞,固有名詞,一般,*,*,*,メロンパン,メロンパン,メロンパン
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
* 2 -1D 0/2 0.000000
食べ    動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
まし    助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
.      記号,句点,*,*,*,*,.,.,.
EOS
* 0 -1D 0/0 0.000000
        記号,一般,*,*,*,*,*
EOS
PS C:\...\mecab>

辞書を変更するには -d オプションを利用します.利用できる辞書や辞書の指定方法は MeCab の辞書と共通です.次のとおり,出力形式を -f1 に変更すると同時に,辞書も指定します.なお,利用できる辞書や辞書の指定方法は MeCab の辞書と共通です.

PS C:\...\mecab> Get-Content -Raw .\sample.txt | docker run --rm -i rinsaka/mecab-ubuntu-x86_64 cabocha -f1 -d /var/lib/mecab/dic/unidic
* 0 3D 0/1 -1.677939
今日    名詞,普通名詞,副詞可能,*,*,*,キョウ,今日,今日,キョー,今日,キョー,和,*,*,*,*,*,*,体,キョウ,キョウ,キョウ,キョウ,1,C3,*,2509094191768064,9128
は      助詞,係助詞,*,*,*,*,ハ,は,は,ワ,は,ワ,和,*,*,*,*,*,*,係助,ハ,ハ,ハ,ハ,*,"動詞%F2@0,名詞%F1,形容詞%F2@-1",*,8059703733133824,29321
* 1 2D 1/2 0.877997
メロン  名詞,普通名詞,一般,*,*,*,メロン,メロン-melon,メロン,メロン,メロン,メロン,外,*,*,*,*,*,*,体,メロン,メロン,メロン,メロン,1,C1,*,10309854279377408,37507
パン    名詞,普通名詞,一般,*,*,*,パン,パン-pao,パン,パン,パン,パン,外,*,*,*,*,*,*,体,パン,パン,パン,パン,1,C3,*,8533868122612224,31046
を      助詞,格助詞,*,*,*,*,ヲ,を,を,オ,を,オ,和,*,*,*,*,*,*,格助,ヲ,ヲ,ヲ,ヲ,*,"動詞%F2@0,名詞%F1,形容詞%F2@-1",*,11381878116459008,41407
* 2 3D 0/2 -1.677939
食べ    動詞,一般,*,*,下一段-バ行,連用形-一般,タベル,食べる,食べ,タベ,食べる,タベル,和,*,*,*,*,*,*,用,タベ,タベル,タベ,タベル,2,C1,M4@1,6220495691326081,22630
まし    助動詞,*,*,*,助動詞-マス,連用形-一般,マス,ます,まし,マシ,ます,マス,和,*,*,*,*,*,*,助動,マシ,マス,マシ,マス,*,動詞%F4@1,*,9812325267808897,35697
た      助動詞,*,*,*,助動詞-タ,終止形-一般,タ,た,た,タ,た,タ,和,*,*,*,*,*,*,助動,タ,タ,タ,タ,*,"動詞%F2@1,形容詞%F4@-2",*,5948916285711019,21642
* 3 -1D 0/0 0.000000
.      補助記号,句点,*,*,*,*,*,.,.,*,.,*,記号,*,*,*,*,*,*,補助,*,*,*,*,*,*,*,14027396882944,51
EOS
* 0 -1D 0/0 0.000000
        補助記号,一般,*,*,*,*
EOS
PS C:\...\mecab>

目次に戻る

Ubuntu へのログイン

コンテナのベースイメージには Ubuntu を利用しています.コンテナのシェルにログインしたい場合は -t オプションを付与して次のコマンドを利用します.Bash シェルの利用方法についての詳細はこちらを参照してください.

PS C:\...\mecab> docker run --rm -i -t rinsaka/mecab-ubuntu-x86_64 /bin/bash
root@ddf6dbbccf13:/# ls ⏎
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
root@ddf6dbbccf13:/# exit ⏎
exit
PS C:\...\mecab>

もう一度 /bin/bash シェルにログインし,辞書が格納されたディレクトリを確認しておきます.

PS C:\...\mecab> docker run --rm -i -t rinsaka/mecab-ubuntu-x86_64 /bin/bash ⏎
root@3bf2afe134b3:/# ls ⏎
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
root@3bf2afe134b3:/# cd /var/lib/mecab/dic/ ⏎
root@3bf2afe134b3:/var/lib/mecab/dic# ls ⏎
debian  ipadic  ipadic-utf8  juman-utf8  mecab-ipadic-neologd  unidic
root@3bf2afe134b3:/var/lib/mecab/dic# ls -l ⏎
total 16
lrwxrwxrwx 1 root root   34 Nov 23 01:36 debian -> /etc/alternatives/mecab-dictionary
drwxr-xr-x 2 root root 4096 Nov 23 01:36 ipadic
drwxr-xr-x 2 root root 4096 Nov 23 01:36 ipadic-utf8
drwxr-xr-x 2 root root 4096 Nov 23 01:36 juman-utf8
lrwxrwxrwx 1 root root   56 Nov 23 01:39 mecab-ipadic-neologd -> /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd
drwxr-xr-x 2 root root 4096 Nov 23 01:38 unidic
root@3bf2afe134b3:/var/lib/mecab/dic# exit ⏎
exit
PS C:\...\mecab>

目次に戻る

バックグラウンドでコンテナを起動しての利用

サーバなどで連続して形態素解析を実行する場合にはコンテナをデーモンとしてバックグラウンドで起動しておくとよいでしょう.バックグラウンドでコンテナを起動するには起動時に -d オプションを指定します.コンテナ利用時には docker exec コマンドを使います.

下の一連のコマンドを実行すると理解が深まるのではないでしょうか.まず,コンテナが一切起動していないことを確認します.

PS C:\...\mecab> docker container ls -a ⏎
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
PS C:\...\mecab>

イメージからコンテナを起動します.このとき,-d オプションを付与することでバックグラウンド(デーモン/daemon)での起動になります.また,起動したコンテナに --name オプションで「mecabd」という名称を指定しています.

PS C:\...\mecab> docker run -i -d --name mecabd rinsaka/mecab-ubuntu-x86_64 ⏎
8ebcc19cdcbf91ba19b103e87146486d1e469aa3e682930b7aa6cdee4894c2cc
PS C:\...\mecab>

コンテナが起動していることを確認します.

PS C:\...\mecab> docker container ls ⏎
CONTAINER ID   IMAGE                         COMMAND            CREATED         STATUS         PORTS     NAMES
8ebcc19cdcbf   rinsaka/mecab-ubuntu-x86_64   "/usr/bin/mecab"   9 seconds ago   Up 9 seconds             mecabd
PS C:\...\mecab>

利用時には docker exec コマンドを利用し,コンテナ名「mecabd」とコマンド「mecab」を指定指定します.

PS C:\...\mecab> Get-Content -Raw .\sample.txt | docker exec -i mecabd mecab ⏎
今日    名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は      助詞,係助詞,*,*,*,*,は,ハ,ワ
メロンパン      名詞,固有名詞,一般,*,*,*,メロンパン,メロンパン,メロンパン
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
食べ    動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
まし    助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
.      記号,句点,*,*,*,*,.,.,.
EOS
        記号,一般,*,*,*,*,*
EOS
PS C:\...\mecab>

コンテナを終了させます.

PS C:\...\mecab> docker container stop mecabd ⏎
mecabd
PS C:\...\mecab>

終了したコンテナはまだ破棄されていないので残っています.

PS C:\...\mecab> docker container ls -a ⏎
CONTAINER ID   IMAGE                         COMMAND            CREATED              STATUS                        PORTS     NAMES
8ebcc19cdcbf   rinsaka/mecab-ubuntu-x86_64   "/usr/bin/mecab"   About a minute ago   Exited (137) 10 seconds ago             mecabd
PS C:\...\mecab>

終了中のコンテナを再び動作させます.このときは docker run コマンドではなく docker container start コマンドになることに注意してください.

PS C:\...\mecab> docker container start mecabd ⏎
mecabd
PS C:\...\mecab>

コンテナが起動していることを確認します.その後,プログラムを実行させるなどの処理を行うと良いでしょう.

PS C:\...\mecab> docker container ls ⏎
CONTAINER ID   IMAGE                         COMMAND            CREATED              STATUS         PORTS     NAMES
8ebcc19cdcbf   rinsaka/mecab-ubuntu-x86_64   "/usr/bin/mecab"   About a minute ago   Up 4 seconds             mecabd
PS C:\...\mecab>

コンテナの利用を終えたらもう一度コンテナを終了させます.

PS C:\...\mecab> docker container stop mecabd ⏎
mecabd
PS C:\...\mecab>

終了したコンテナは破棄されていないのでやはり残っています.

PS C:\...\mecab> docker container ls -a ⏎
CONTAINER ID   IMAGE                         COMMAND            CREATED              STATUS                       PORTS     NAMES
8ebcc19cdcbf   rinsaka/mecab-ubuntu-x86_64   "/usr/bin/mecab"   About a minute ago   Exited (137) 6 seconds ago             mecabd
PS C:\...\mecab>

終了したコンテナを破棄します.

PS C:\...\mecab> docker container rm mecabd ⏎
mecabd
PS C:\...\mecab>

停止中のコンテナも存在しない状態になりました.

PS C:\...\mecab> docker container ls -a ⏎
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
PS C:\...\mecab>

目次に戻る

イメージの削除

ここで利用しているDockerのベースイメージ (rinsaka/mecab-ubuntu-x86_64) のサイズは10GB以上あることから,今後利用する見込みがないのであれば無駄なストレージ容量を消費しないよう,イメージを削除しておくことが考えられます.

PS C:\...\mecab> docker image ls ⏎
REPOSITORY                    TAG       IMAGE ID       CREATED         SIZE
rinsaka/mecab-ubuntu-x86_64   latest    0abf3e798b73   8 minutes ago   10.5GB
PS C:\...\mecab>

IMAGE ID (の先頭数文字)を指定してイメージを削除します.

PS C:\...\mecab> docker image rm 0ab
Untagged: rinsaka/mecab-ubuntu-x86_64:latest
Untagged: rinsaka/mecab-ubuntu-x86_64@sha256:9b5c0f80373f5110fb7d141ba34bc427ff4df9bb13ee901dde57b935826e4cd7
Deleted: sha256:0abf3e798b730dca3b342d1f8a018c7475b58b5aa5c13746b0ab9f3eefa988b8
PS C:\...\mecab>

イメージが削除されたことを確認します.

PS C:\...\mecab> docker image ls ⏎
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
PS C:\...\mecab>

念のため,Docker のストレージ消費量などを確認しても良いでしょう.

PS C:\...\mecab> docker system df ⏎
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          0         0         0B        0B
Containers      0         0         0B        0B
Local Volumes   0         0         0B        0B
Build Cache     0         0         0B        0B
PS C:\...\mecab>

目次に戻る