DockerでAlpine動かしてみた

Dockerへの依存が始まった大学の友人と日々を過ごしています、Isaacです。

Dockerは非常に便利な代物ですが、ふとdocker images してみてDockerのイメージ達が結構大きくなってきていることに、上述した彼も気付く頃だと思います。そのほとんどはOSが占めていることもしばしば…

じゃあ超軽量のOSを使おう!ということで、今回はIsaacお気に入りのArchLinuxよりも軽い、AlpineLinuxをDockerのイメージに使っていく方法を記します。

AlpineLinuxをお触りしてみる

AlpineLinuxのDockerイメージは、DockerHubに上がっているので、特に理由が無ければそれを使います。

docker pull alpine

これだけでalpine:latestが入ります。では試しにこれでコンテナを立ち上げてみます。

docker run -it --rm alpine ash

いつもとは違うシェルの入力画面になったかと思います。ashは軽量なUnixシェルらしいです。自分はAlpineLinuxを使って初めて知りました。

 

パッケージ管理

ArchLinuxにはpacman、Ubuntuにはapt-get、CentOSにはyumがあるように、AlpineLinuxにはapkがあります

DockerでAlpineLinuxを動かした直後はapkのリポジトリが古いというか空(?)なので、まずはapk update します。

検索

apk search パッケージ名

インストール

apk add –no-cache パッケージ名

--no-cache を付けることで、キャッシュが無駄に残ることを防ぎます。

 

 

というか、Ansibleを試したいんですよ。そのためにOpenSSHを入れて、sshdを動かします。

apk add –no-cache openssh openrc rc-service sshd start

そしたらchrootか何かで外部から叩いてるだろって怒られるので、これ打ったら許すと言われたコマンドを打ちます。

touch /run/openrc/softlevel

これで通るようになります。