概要
前回 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 件のコメント:
コメントを投稿