主にDokkuの運用で便利。
とりあえず、当該イメージをアップデートする。
docker pull progrium/buildstep
docker run -ti
でインストールコマンドを実行する。そうすると実行結果のコンテナがタグなしでできる。正常終了を見届ける。
docker run -ti progrium/buildstep /bin/bash -c "apt-get -y update; apt-get -y install libmecab-dev mecab-ipadic-utf8; apt-get -y clean"
最後に実行した結果の CONTAINER ID は docker ps -l
で出てくるので確認する。
root@dokku001:~# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b9143e89867 progrium/buildstep:latest /bin/bash -c 'apt-ge 2 seconds ago Exited (0) 1 seconds ago distracted_feynman
このコンテナのIDを既存のイメージのlatestとひもづける。
docker commit 1b9143e89867 progrium/buildstep:latest
これでOK。 docker commit
は、gitなどと同様、ローカルのイメージの状態に対しコミットして、リモート(Docker Hub)にあるイメージには一切触れないので気軽に状態を変えることができる。
インストール結果の確認とかは、普通に docker run -ti
とかで大丈夫。 docker run
を実行してもコミットしない限りはもとのイメージは変更されないことに留意したい。
root@dokku001:~# docker run -ti progrium/buildstep /bin/bash -c "dpkg -L libmecab-dev"
/.
/usr
/usr/include
/usr/include/mecab.h
/usr/lib
/usr/lib/libmecab.a
/usr/share
/usr/share/doc
/usr/share/doc/libmecab-dev
/usr/share/doc/libmecab-dev/copyright
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/mecab-config.1.gz
/usr/bin
/usr/bin/mecab-config
/usr/lib/libmecab.so
/usr/share/doc/libmecab-dev/README
/usr/share/doc/libmecab-dev/AUTHORS
/usr/share/doc/libmecab-dev/changelog.Debian.gz
大々的に変える場合は別途Dockerfileを作った方が良いと思う。少し変えたい場合はこんな感じでぽちぽちとやっている。