如何转换docker image到lxc

lxc和docker都类似,但实际应用场合不一样

docker,更强调的是以应用为中心,打包的镜像也是应用程序运行环境,不一定非要整个操作系统,而且docker起来基本上只会运行一个应用。

lxc,更强调以操作系统为中心,打包的镜像包含完整的操作系统,运行的时候,和普通操作系统一样可能启动多个进程。

但实际docker这样的以应用为中心的的容器,容器本身已经是比较基础的了,应用编排比如docker  swarm, k8s这样的平台才是重心了。

lxc镜像可以从零去制作,这个留待后面研究,LXC安装完后有一些模板,默认有一个模板就是支持OCI格式的镜像模板,可以直接从doker的registry拉镜像在本地生成LXC镜像。

但实际项目上大多是离线环境,拿到的docker镜像也是docker save这样导出来的tar文件,可以直接创建lxc。

lxc-create -n centos-from-docker -t oci -- --url docker-archive:/root/centos.tar

但前提是有几个工具系统得具备 skopeo,umoci,jq

其中centos8里面skopeo jq都有,umoci可以从官网下载编译好的二进制

:: umociDocumentation for umoci -- a tool for modifying OCI images.https://umo.ci/

当然arm平台的就得自己编译一下了。

其实我自己看了下lxc-create出来的目录,例如ubuntu1这个lxc容器

路径再/var/lib/lxc/ubuntu1

主要生效的是config这个文件 

[root@localhost ubuntu1]# cat /var/lib/lxc/ubuntu1/config 
# Template used to create this container: /usr/share/lxc/templates/lxc-ubuntu
# Parameters passed to the template:
# For additional config options, please look at lxc.container.conf(5)

# Uncomment the following line to support nesting containers:
#lxc.include = /usr/share/lxc/config/nesting.conf
# (Be aware this has security implications)


# Common configuration

# Container specific configuration
lxc.rootfs.path = dir:/var/lib/lxc/ubuntu1/rootfs
lxc.uts.name = ubuntu1
lxc.arch = amd64

# Network configuration
lxc.net.0.type = veth
lxc.net.0.link = virbr0
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:16:3e:db:9b:08

主要定义了容器rootfs 网络配置等.

按照其他容器的config文件修改,自己准备好rootfs,就可以手工创建容器镜像了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker Image制作方法有以下两种:使用Docker Container Commit和使用Docker Image Build和Dockerfile制作。 如果使用Docker Image Build和Dockerfile制作Docker Image,可以按照以下步骤进行操作: 1. 首先,需要在hub.docker.com或cloud.docker.com注册一个账号,并使用`docker login`命令进行登录。 2. 然后,使用`docker image build`命令来构建Image文件。可以使用`-t`参数为Image文件标注用户名、仓库和版本号。例如:`docker image build -t [username]/[repository]:[tag] .`。这样,就会在本地构建一个带有指定用户名、仓库和版本号的Image文件。 3. 最后,使用`docker image push`命令将构建好的Image文件发布到仓库中,供其他人使用。例如:`docker image push [username]/[repository]:[tag]`。 另外,你还可以从Docker官方仓库(https://hub.docker.com/)中抓取Image文件到本地,使用`docker image pull`命令。例如:`docker image pull library/hello-world`。 运行Image文件时,可以使用`docker container run`命令来生成一个正在运行的容器实例。例如:`docker container run hello-world`。注意,运行完后,容器会自动停止,如果想要手动终止不会自动终止的容器,可以使用`docker container kill`命令。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Docker Image Build 和 Dockerfile 进行 Docker Image 制作详解(制作 Docker Image 方法之二)、...](https://blog.csdn.net/weixin_44983653/article/details/103306038)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [docker的使用](https://blog.csdn.net/gghgrqw/article/details/109448394)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值