docker & alpine
いまdocker熱いですね。
どうもそれとセットでalpine linuxってのが熱いらしいです
何がいいのそれっていうと、コンテナサイズが劇的に軽くなるということのようです
くわしくはこのあたりに:
Docker、オフィシャルイメージのOSをAlpine Linuxへ切り替える計画が明らかに。OSの軽量化に傾倒するDocker - Publickey
で、alpineベースでmemcachedとredisのコンテナがあるんですけど両方くっついたコンテナの方がほしくなったので、dockerの勉強がてら作ってみました
使い方は
$ git clone git@github.com:rane-hs/memcached-and-redis.docker.git $ cd memcached-and-redis.docker $ docker build -t memcached-redis-alpine . $ docker run --restart always --name mcdocker -i -t -d memcached-redis-alpine $ docker inspect mcdocker | grep IPAddr # コンテナのIPを入手
で、↑で入手したアドレスにログインします
$ telnet 123.45.67.89 11211 # telnet $ redis-cli 123.45.67.89 # redis
docker commands
使ったコマンドたち。
以下は↑のリンクをgit cloneしてきて1個中に入った状態で叩かれていることを想定しています
build container
docker build -t memcached-redis-alpine .
memcached-redis-alpine
という名前でコンテナイメージを作ります
run container
docker run --restart always --name mcdocker -i -t -d memcached-redis-alpine
mcdocker
という名前でコンテナを走らせます。イメージは↑で作った名前です
check running container
docker ps
- いまローカルにあるイメージの一覧は
docker images
で - 両方
-a
がoptionalで使えます
remove container (-f : force)
docker rm -f mcdocker
- イメージ削除は
rmi
remove unused container image (1liner)
docker rmi -f $(sudo docker images -a | awk '/^<none>/ { print $3 }')
- 全部きえるわけではないです
check container setting
docker inspect mcdocker
IPAddress
でコンテナのIPアドレスがわかります
run container shell
docker exec -it mcdocker /bin/ash
attach
はdocker run
したスクリプトにアタッチしちゃうので、Ctrl-Cとかexitしちゃうとコンテナごと閉じます。- ここでは
exec
を使ってシェルを立ち上げています。alpine linuxではbashがないのでashとしましたがubuntuではbashでよさそう
お役立ちリンク
- docker チートシート
- alpine linuxで
docker pull mysql
できないのは上記を見て対応してください
- dockerオススメTIPS15選。
- sudo dockerプレフィックスをdockerにする方法もあります