docker轻量化及基本操作

1. docker commit之后很大,如何轻量化?两种方法:

a. 方法一:

先进入要打包的容器,执行以下命令对根目录下的文件打包,本质上是对容器内的感兴趣的内容进行压缩打包,将不需要的内容exclude掉,以下面代码为例将根目录“/”下的内容打包为1.tar,在打包过程中排除掉/proc,/sys以及1.tar。注意要将路径放在最后,不要放在--exclude之前,否则可能会导致打包好的镜像大小远超目录下内容大小。

tar -cvf 1.tar --exclude=/proc --exclude=/sys --exclude=1.tar /  (正确方法)
tar -cvf 1.tar / --exclude=/proc --exclude=/sys --exclude=1.tar (错误方法)

然后将打包好的文件拷贝到宿主机下:

sudo docker cp 容器ID:/1.tar .

最后生成新的镜像:

cat 1.tar | sudo docker import - 1

通过docker images查看,可以看到有一个新生成的名为img的镜像,体量会小很多。

b. 方法二:

通过Dockerfile制作镜像,具体自行查找如何编写

2. docker开机自启:

docker run -idt --restart=always ********

3. docker绑定本地硬件(dev为例):

docker run -dit -v /dev:/dev --privileged --restart=always --net=host --name ros ros bash

4. docker绑定本地显示资源:

docker run -di -v /dev:/dev --privileged --net=host --name ros -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix  ros bash

5. docker镜像导出与导入:

导出:
docker commit ros01 ros02 (ros01是容器名称,ros02是image名称)
docker save -o ros02.tar ros02
导入:
docker load -i ros02.tar 

6. docker磁盘清理:

docker运行一段时间后,磁盘占用很大,在/var/lib/docker路径下,那么如何清理呢?

清理无用的镜像
docker image prune

清理所有未使用的镜像
docker image prune -a

清理无用的容器
docker container prune

清理不用的数据卷
docker volume prune

清理无用的网络链接
docker network prune

一键清理停掉的container、悬挂的image(没有tag)、没有使用的network、数据卷
docker system prune
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值