太极猫

docker常用命令

=======重建 docker 的 storage=======

(1) 查看 lv (logic volumn)

lvdisplay

 

回显

/dev/docker/thinpoolmeta and thinpool

 

(2) 清理 docker lib

rm -rf /var/lib/docker/*

 

(3) 删除 lv

lvremove /dev/docker/thinpool

 

(4) 重建 thinpool

lvcreate --wipesignatures y -n thinpool docker -l 95%VG

 

(5) 格式化

lvconvert -y \

--zero n \

-c 512K \

--thinpool docker/thinpool

 

(6) 重启 docker

service docker restart

 

lvs

 

lvdisplay

============docker与宿主机之间文件传递=================

拷贝文件到容器

docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径

 

拷贝文件到宿主机

docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径

 

docker代理

/etc/systemd/system/docker.service.d

 

========docker批量删除========

杀死所有正在运行的容器

docker kill $(docker ps -a -q)

 

删除所有已经停止的容器

docker rm $(docker ps -a -q)

 

删除所有未打 dangling 标签的镜像

docker rmi $(docker images -q -f dangling=true)

 

删除所有镜像

docker rmi $(docker images -q)

 

强制删除镜像名称中包含“doss-api”的镜像

docker rmi --force $(docker images | grep doss-api | awk '{print $3}')

 

=========镜像导出导入==========

方式一

docker save -o 保存文件名.tar 目标镜像名:tag

docker tag id name:tag

docker load -i 上传文件

docker rmi -f busybox

(该种方式会保存镜像的所有历史记录)

方式二

docker export

docker export id > ubuntu.tar

docker import

docker import - test/ubuntu:v1.0

(该种方式不会保存镜像的所有历史记录,只保存一次快照状态)

 

=======镜像制作方式==========

1.通过用dockerfile 来制作镜像

编写dockerfile

然后docker build -t xxx:tag .

 

2.可以通过docker commit 来制作镜像 [前提是镜像已经存在]

通过docker exec -it xxxx:tag /bin/bash 进入容器内部

修改完毕之后

exit

docker ps -a 会多出一个ID出来

这时候可以可以用docker commit

docker commit <ID> xxxx:new

 

本地文件拷贝容器中

docker cp kube-controller-manager 4ce62d7cf0f4:/usr/local/bin/

 

docker commit 4ce62d7cf0f4 x.x.x.x:20202/root/cfe-kube-controller-manager:test

 

docker run -it imageID /bin/bash

============查看容器配置============

docker inspect 容器id

=========cpu============

默认情况下容器可以使用的主机 CPU 资源是不受限制的

 

 

--cpu-period=100000 --cpu-quota=200000 //(1.13 及之后的版本(新增--cpus=2 配置项)仍然支持这两个选项) //单位为微秒,100000 表示 100 毫秒,200000 表示 200 毫秒 含义:在每 100 毫秒的时间里,运行进程使用的 CPU 时间最多为 200 毫秒(需要两个 CPU 各执行 100 毫秒)

 

--cpuset-cpus= //指定固定的cpu //--cpuset-cpus 选项的一个缺点是必须指定 CPU 在操作系统中的编号,这对于动态调度的环境(无法预测容器会在哪些主机上运行,只能通过程序动态的检测系统中的 CPU 编号,并生成 docker run 命令)会带来一些不便。写法--cpuset-cpus=”0,1,2”或者--cpuset-cpus=”0-2”

 

--cpu-shares=512 //设置CPU的权重,当 CPU 资源充足时,设置 CPU 的权重是没有意义的。只有在容器争用 CPU 资源的情况下, CPU 的权重才能让不同的容器分到不同的 CPU 用量。--cpu-shares 选项用来设置 CPU 权重,它的默认值为 1024。我们可以把它设置为 2 表示很低的权重,但是设置为 0 表示使用默认值 1024

=======docker 安全检查========

docker ps --quiet | xargs docker inspect --format '{{.Id}}:UTSMode = {{.HostConfig.UTSMode}}'

 

docker ps --quiet | xargs docker inspect --format '{{.Id}}:Devices = {{.HostConfig.Devices}}'

 

docker ps --quiet | xargs docker inspect --format'{{.Id}}:CpuShares = {{.HostConfig.CpuShares}}'

 

for dt in `docker ps --quiet`; do echo $dt; docker exec $dt ps -o args -e 2>/dev/null| egrep '\s+ssh\s+'; done

 

docker exec ID ps -o args -e 2>/dev/null | egrep '\s+ssh\s+'

posted on 2019-09-02 14:50  太极猫  阅读(244)  评论(0编辑  收藏  举报

导航