docker不太常用的命令
- docker ps -s #查看容器所占的磁盘大小
- docker rm ${docker ps -q -a} # 删除全部非运行态的容器
- docker system df #查看docker存储的使用情况
- docker system prun #清理无用的容器、网络、数据集
- docker rmi $(docker images | awk ‘/^
/ { print $3 }’) #删除的镜像repositry为none的镜像 - 删除 未被使用的镜像 docker rmi $(docker images | awk ‘ { print $3 }’)
docker配置参数
- –iptables ,该参数用于控制是否允许docker去管理iptables,当设置为true时,允许docker去管理iptbales表
- 通常在docker单独使用时,需要这样配置,如果配置为false,iptables被清空后,是无法自动创建的
- 在基于Kubernetes等管理docker时,可以配置iptables=false
- –ip-forward,该参数用于控主机容器与外部网络之间的相互通信,当设置为true时,允许容器被外部访问,当设置为false时,外部是无法访问到容器
- 当宿主机设置了ip_forward参数为1时,会以宿主机的配置为准,docker的改配置参数无效
迁移docker存储方式一
若docker已经运行一段时间,并存在运行的容器,可以采用以下方法进行容器存储的迁移
- 停止全部容器
- 停止docker:systemctl stop docker
- mkdir -p /sl/docker/
- 移动docker存储:mv /var/lib/docker/* /sl/docker/
- 建立软连接:ln -s /sl/docker /var/lib/
- systemctl start docker
==注意删除软连接是 rm /var/lib/docker 后面不能有斜杠,否则是删除整个目录)==
迁移docker存储方式二
- 停止全部容器
- 停止docker:systemctl stop docker
- cd /sl
- mkdir dockerdaemon
- cd /sl/dockerdaemon
- tar -czvpf docker.tar.gz /var/lib/docker
- tar zxvf docker.tar.gz -C /sl/dockerdaemon
- cd /sl/dockerdaemon/var/lib/
- mv docker/ ../../
- mv /var/lib/docker /sl/backup
- ln -s /sl/dockerdaemon/docker /var/lib/
基于操作系统制作docker镜像
执行以下操作
- tar –exclude=/usr/lib32 -cPvf fedora21-base.tar /home
将本机运行的操作系统打成一个fedora21-base.tar包,其中–exclude参数是将不需要的目录排除,可以使用–exclude多个参数排除多个目录。
- cat fedora21-base.tar | docker import - fedora21-base
将tar包使用docker import编译导入镜像
- docker run -i -t fedora21-base /bin/bash
启动镜像。-i 代表打开标准输入 -t 虚拟一个窗口 /bin/bash启动镜像执行的命令
进入容器命名空间
获取容器的init pid
cat /run/containerd/io.containerd.runtime.v1.linux/moby/7208ab53697925439605bca93718c6158db354909fedbe7a1f96ddcd5d5563db/init.pid
18399
进入mount 命名空间,可以直接查看容器的目录空间
nsenter -t 18399 -m
进入
获取节点全部镜像push
docker images|grep iamgetag |awk ‘{print $1}’|while read image_id;do docker push $image_id; done
docker NET_ADMIN 权限
允许在容器内进行一些网络的操作权限,在某些情况下如果容器具有该权限后,会操作宿主机的网络(为容器设置–net=host时,会对宿主机网络带来安全隐患)
1 | For interacting with the network stack, instead of using --privileged they should use --cap-add=NET_ADMIN to modify the network interfaces. |
1 | Perform various network-related operations: |