2018年4月23日月曜日

rkt を使ってコンテナを立ち上げてみた

概要

前回 CoreOS を vagrant を使って構築してみました
せっかく構築してみたので CoreOS の特徴でもある rkt を使ってみました

環境

  • macOS 10.13.4
  • vagrant 2.0.3
  • coreos 4.15.15
  • rkt 1.29.0

dockerhub からイメージを取得して起動する

すでに docker で構築したイメージを使うことができます

  • sudo rkt run --insecure-options=image docker://redis

--insecure-options=image を指定する必要があります
ちなみに公式の library は上記で良いですが個人で push したイメージなどはリポジトリを指定する必要があるので以下のようにします

  • sudo rkt run --insecure-options=image docker://registry-1.docker.io/kakakikikeke/request-dumper

docker のように pull だけしたい場合は fetch というコマンドがあるのでそれを使います

コンテナの操作

あとは一覧を取得してコンテナの操作をします
停止 -> 削除は以下の通りです

  • rkt list
  • sudo rkt stop 6e9111b9
  • sudo rkt rm 6e9111b9

ちなみにバックグラウンドで run する場合には systemd-run を噛ませる必要があります

  • sudo systemd-run rkt --insecure-options=image run docker://redis
Running as unit: run-rd6fe84ddc868479299f433bf79b8d434.service

コンテナにアクセスする場合は rkt list で表示される IP にアクセスすれば OK です
rkt の場合ネットワークはホストにあるものを直接利用します
なので、docker のようにホストにポートをバインドしないとコンテナにアクセスできないということがありません

ただ、rkt list ではコンテナ上で LISTEN しているポートはわかりません
なのでポートを調べたい場合はマニフェストを調べるコマンドがあるのでこれを使えばポートがわかります

  • rkt cat-manifest 6e9111b9

最後に

rkt コマンドを使って Dockerhub 上にあるイメージを引っ張ってきてコンテナを起動してみました
基本的な操作は docker に似ているかなと思います

rkt には actool というビルドコマンドがありこれを使って rkt 用のイメージを作成することができます
が、結構面倒なので個人的にはイメージは docker で作ってしまって適当なレポジトリで公開しコンテナを起動する時に rkt を使うという風にしたほうが簡単かなと思います

参考サイト

0 件のコメント:

コメントを投稿