专栏首页康怀帅的专栏CoreOS 容器 Rkt 简单介绍

抱歉,你查看的文章已删除

CoreOS 容器 Rkt 简单介绍

由于 Docker 已经成为事实上的容器老大,这里暂且将 rkt 内容放入 docker 文件夹。哈哈

官方网站:https://coreos.com/rkt/

官方文档:https://coreos.com/rkt/docs/latest/

GitHub:https://github.com/rkt/rkt/

这里使用 CoreOS 来学习 Rkt,其他 Linux 系统上 Rkt 的安装方法很简单,这里不再赘述。

Rkt 目前只支持 Linux 系统。

先看一下命令列表

NAME:
	rkt - rkt, the application container runner

USAGE:
	rkt [command]

VERSION:
	1.29.0

COMMANDS:
	api-service		      Run API service (experimental)
	cat-manifest		    Inspect and print the pod manifest
	completion		      Output shell completion code for the specified shell
	config			        Print configuration for each stage in JSON format
	enter			          Enter the namespaces of an app within a rkt pod
	export			        Export an app from an exited pod to an ACI file
	fetch			          Fetch image(s) and store them in the local store
	gc			            Garbage collect rkt pods no longer in use
	image cat-manifest	Inspect and print the image manifest
	image export		    Export a stored image to an ACI file
	image extract		    Extract a stored image to a directory
	image gc		        Garbage collect local store
	image list		      List images in the local store
	image render		    Render a stored image to a directory with all its dependencies
	image rm		        Remove one or more images with the given IDs or image names from the local store
	image verify		    Verify one or more rendered images in the local store
	list			          List pods
	metadata-service	  Run metadata service
	prepare			        Prepare to run image(s) in a pod in rkt
	rm			            Remove all files and resources associated with an exited pod
	run			            Run image(s) in a pod in rkt
	run-prepared		    Run a prepared application pod in rkt
	status			        Check the status of a rkt pod
	stop			          Stop a pod
	trust			          Trust a key for image verification
	version			        Print the version and exit
	help			          Help about any command

DESCRIPTION:
	A CLI for running app containers on Linux.

	To get the help on any specific command, run "rkt help command".

OPTIONS:
      --debug[=false]			print out more debug information to stderr
      --dir=/var/lib/rkt		rkt data directory
      --insecure-options=none		comma-separated list of security features to disable. Allowed values: "none", "image", "tls", "ondisk", "http", "pubkey", "capabilities", "paths", "seccomp", "all-fetch", "all-run", "all"
      --local-config=/etc/rkt		`local` configuration directory
      --system-config=/usr/lib/rkt	system configuration directory
      --trust-keys-from-https[=false]	automatically trust gpg keys fetched from https
      --user-config=			user configuration directory

rkt 使用的是 pod 的概念,与 k8s 联系紧密,可能对应 docker 中的容器概念。

下载 Docker 镜像

rktdocker 多了一个验证的功能,下载 Docker 镜像必须加上不要验证的参数。

$ rkt fetch --insecure-options=image docker://ubuntu

# fetch 与 git 中的 fetch 含义差不多,对应 docker pull

查看镜像

$ rkt image list

ID			            NAME						                            SIZE	IMPORT TIME	  LAST USED
sha512-bea6e5210d47	registry-1.docker.io/library/ubuntu:latest	98MiB	1 minute ago	1 minute ago

# 与 docker 中的命令一致,可能遵循了某种标准。哈哈,别和我说 docker images 那是旧命令了,好吧!

运行一个 pod

$ sudo rkt --insecure-options=image \
    run \
    --interactive \
    docker://ubuntu

# docker run XXX

$ rkt run --help

--interactive 与 docker -it 对应

--volume data,kind=host,source=/srv/data,readOnly=false 挂载文件

--volume data,kind=empty,readOnly=false

--mount volume=VOL,target=PATH

$ sudo rkt --insecure-options=image \
    run \
    --interactive \
    --volume data,kind=host,source=/srv/data \
    --mount volume=data,target=/srv/data \
    docker://ubuntu \
    --exec /bin/sh

--port=80-tcp:80 暴露端口

$ sudo rkt --insecure-options=image \
    run \
    docker://nginx:alpine \
    --port=80-tcp:80

--set-env=KEY=VALUE 设置 pod 环境变量

--environment=foo=bar 设置 pod 环境变量

--exec /bin/sh

--name=name

--net=host | default | none

--net="net1:IP=1.2.3.4"

后台运行

systemd-run

https://coreos.com/rkt/docs/latest/using-rkt-with-systemd.html#systemd-run

$ sudo systemd-run \
    --slice=machine \
		rkt \
		--insecure-options=image \
		run \
		--net=host \
		docker://nginx:alpine

daemon

http://www.libslack.org/daemon/

查看 pods 信息

$ rkt list
UUID		  APP	  IMAGE NAME					                      STATE		  CREATED			    STARTED		    NETWORKS
ea4b9fe5	nginx	registry-1.docker.io/library/nginx:alpine	running		9 seconds ago		9 seconds ago	default:ip4=172.16.28.5

# docker ps -a

进入 pod

$ sudo rkt enter ea sh

# docker exec

停止 pod

$ sudo rkt stop ea

# docker stop

删除 pod

$ sudo rkt rm ea

# docker rm

More information

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Docker CE for Mac v17.12 正式支持 k8s

    视频:https://www.bilibili.com/video/av17307986/

    康怀帅
  • Docker 桌面版支持 kubernetes

    Docker for Mac v17.12 正式支持 k8s。 Docker for Windows v18.02-rc1 正式支持 k8s。 相关文章 Bet...

    康怀帅
  • Docker Swarm mode 详解

    使用 docker swarm Dcoker 内置的集群管理的工具,Docker CE 1.12+。注意与旧的 Docker Swarm 区分开来。 OS: C...

    康怀帅
  • 云监控与服务器监控不同的6个原因

    传统的IT监控,一直是针对以服务器为主的基础设施来进行的。然而如果是将应用部署在云端,那么监控会变得很不一样,因为别说监控,我们很有可能都接触不到服务器。对于应...

    Drew Zhong
  • 王石:强者和弱者

    用户1756920
  • 新机2019:5G、可折叠、多摄元年?潮流背后问题不少

    MWC 2019在巴塞罗那如火如荼举行,大会前及举办期间,三星、华为、小米、LG、诺基亚……一大波手机新品及相关技术的发布与展示,一如既往地踊跃亮相。可以说,M...

    VRPinea
  • Spring Boot 快速入门系列(I) —— 属性配置篇

    通过上一篇(Spring Boot 快速入门系列(先导篇) —— 从 Hello World 开始)的介绍,相信大家对 Spring Boot 构建轻量级项目已...

    IT技术小咖
  • 为什么重写 equals 时必须重写 hashcode?

    equals 默认是和==一样,判断引用是否相等的,一般需要覆写后才能实现真正的判等。

    水货程序员
  • Influx Sql系列教程三:measurement 表

    在influxdb中measurement相当于mysql中的表,可以理解为一条一条记录都是存与measurent中的,一个数据库中可以有多个measureme...

    一灰灰blog
  • 在ASP.NET中,IE与Firefox下载文件带汉字名时乱码的解决方法

    跟着阿笨一起玩NET

扫码关注云+社区

领取腾讯云代金券