⭐️
gVisorをdockerで実際に使ってみた
gVisorとは?
みなさん、gVisorってご存知でしょうか?gVisorはgoogleが開発したコンテナランタイムで、みなさんがデフォルトで利用しているruncよりセキュリティ性が高いです。そこで今回dockerで使ってみたので、軽く紹介していこうと思います。
gVisorのインストール
僕の環境ではUbuntuなので、Ubuntuの方は以下の通りにインストールしてください。
curl -fsSL https://gvisor.dev/archive.key | sudo gpg --dearmor -o /usr/share/keyrings/gvisor-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/gvisor-archive-keyring.gpg] https://storage.googleapis.com/gvisor/releases release main" | sudo tee /etc/apt/sources.list.d/gvisor.list > /dev/null
sudo apt-get update && sudo apt-get install -y runsc
runscとは?
低レベルランタイムです。主にruncの部分にあたる場所です。
いよいよインストール
以下の通りにインストールしてください。
sudo runsc install
そうすると、以下の通りに/etc/docker/daemon.json
が変更されます。
daemon.json
{
"runtimes": {
"runsc": {
"path": "/usr/bin/runsc"
}
}
}
そのあと以下の通りにdockerを再起動します。
$ sudo systemctl restart docker
実行してみよう
以下の通りにruntime
引数にrunsc
を渡してください。
$ docker run --runtime=runsc nginx
gVisorをデフォルトランタイムにしよう
ランタイムを指定することを省くために、デフォルトランタイムにしましょう。
/etc/docker/daemon.json
を以下の通りに変更してください。
daemon.json
{
"runtimes": {
"runsc": {
"path": "/usr/bin/runsc"
}
},
"default-runtime": "runsc"
}
これでgVisorをデフォルトにすることができました!
最後に
僕はDiscord botを動かす時docker-composeを使うのですが、前からgVisorが気になっていたので、試しにgVisorを入れて強化しようと思いインストールしてみました。これを機に皆様もdockerにgVisorを入れてセキュリティを強化しましょう。
Discussion