1 个不稳定版本
使用旧的Rust 2015
0.0.0 | 2018年11月15日 |
---|
#26 in #cgroup
2KB
railcar
- Rust实现的oci-runtime规范
railcar
是什么?
railcar
是 opencontainers 创新计划 的 runtime 规范 的 Rust 实现。它与参考实现 runc
类似,但它完全使用 Rust 实现,以确保内存安全,无需垃圾收集器或多个线程的开销。有关 railcar 开发的更多信息,请参阅 在 Rust 中构建容器运行时
构建 railcar
安装 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
的差异
总的来说,railcar
与 runc
非常相似,但某些 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。