1 个不稳定版本

使用旧的Rust 2015

0.0.0 2018年11月15日

#26 in #cgroup

UPL-1.0 OR Apache-2.0

2KB

railcar - Rust实现的oci-runtime规范

railcar

railcar 是什么?

railcaropencontainers 创新计划runtime 规范 的 Rust 实现。它与参考实现 runc 类似,但它完全使用 Rust 实现,以确保内存安全,无需垃圾收集器或多个线程的开销。有关 railcar 开发的更多信息,请参阅 在 Rust 中构建容器运行时

构建 railcar

wercker status

安装 Rust

curl https://sh.rustup.rs -sSf | sh
cargo install cargo-when
rustup toolchain install stable-x86_64-unknown-linux-gnu
rustup default stable-x86_64-unknown-linux-gnu # for stable
rustup target install x86_64-unknown-linux-musl # for stable
rustup toolchain install nightly-x86_64-unknown-linux-gnu
rustup default nightly-x86_64-unknown-linux-gnu # for nightly
rustup target install x86_64-unknown-linux-musl # for nightly

可以通过 build.sh 进行构建

build.sh

默认情况下,build.sh 使用 GNU 构建动态二进制文件。要构建静态二进制文件,请将 TARGET 设置为 x86_64-unknown-linux-musl

TARGET=x86_64-unknown-linux-musl ./build.sh

TARGET=x86_64-unknown-linux-gnu 的构建需求

libseccomp-devel

TARGET=x86_64-unknown-linux-musl 的构建需求

git submodule update --init
autotools
make
gcc
musl-gcc

要构建发布版本

build.sh --release

如果您使用稳定版而不是夜间版进行构建,则 set_name 功能将禁用,并且容器内的 init 进程在通过 ps 或 /proc/$pid/cmdline 查看时不会被命名为 rc-init。

使用 railcar

./railcar run

您可以使用 -b 指定不同的包目录,其中包含您的 config.json

./railcar -b /some/other/directory run

使用 docker 与 railcar 一起使用

railcar 可以用作 docker 的后端。要使用它,请使用附加后端启动 docker 守护进程

dockerd ... --experimental --add-runtime "rc=/path/to/railcar"

然后您可以通过指定 rc 后端来使用 railcar

docker run -it --rm --runtime rc hello

请注意,您应该使用终端(-t 选项)启动守护进程,以便 docker 可以正确地从 railcar 收集 stdout 和 stderr。如果您想将容器守护化为守护进程,只需使用

docker run -dt --rm --runtime rc hello

runc 的差异

总的来说,railcarrunc 非常相似,但某些 runc 命令不受支持。目前,railcar 不支持以下命令

 checkpoint
 events
 exec
 init
 list
 pause
 restore
 resume
 spec

此外,railcar 总是独立于容器进程运行 init 进程。

贡献

railcar 是一个开源项目。有关详细信息,请参阅 CONTRIBUTING

Oracle 感谢社区对 railcar 的贡献。

联系方式

最佳联系方式是 Slack。

点击这里加入Oracle Container Tools 工作空间

然后加入Railcar 频道

许可证

版权所有 (c) 2017,Oracle及其关联公司。保留所有权利。

railcar在通用授权许可1.0和Apache授权许可2.0下双许可。

有关更多详细信息,请参阅LICENSE

无运行时依赖