#删除的前提条件是被删除的镜像没有被使用(start,run ,stop 状态的都算运行) #删除单个镜像 docker rmi 镜像ID #删除多个镜像 docker rmi 镜像名1:TAG 镜像名2:TAG #删除所有的镜像 ,docker images -qa会列出所有的镜像id docker rmi $(docker images -qa) #额外的参数 -f 可以删除非运行状态下的镜像 docker rmi -f 镜像ID docker rmi -f 镜像名1:TAG 镜像名2:TAG docker rmi -f $(docker images -qa)删除虚悬镜像
下面这个样子的查询就是虚悬镜像,即REPOSITORY和TAG是none的
此类情况在docker pull ,docker build 都会产生(TAG冲突产生的)
[root@VM-20-4-centos caddy]# docker images -a REPOSITORY TAG IMAGE ID CREATED SIZEc62a8656957d 7 days ago 1.08GB
可以是用下面的两个命令进行删除
docker image prune列出运行的容器
#命令样式 docker ps [OPTIONS] #列出正在运行的容器 docker ps #-a:列出当前所有正在运行的容器+历史上运行过的 docker ps -a #-l:显示最近创建的容器 docker ps -l #-n:显示最近n个创建的容器 docker ps -n #-q:静默模式,只显示容器编号 docker ps -q #上面的命令可以组合使用例如 #显示所有的容器的编号 docker ps -qa运行容器
docker run [OPTIONS] #例子 运行一个Ubuntu镜像,下面的命令运行最新版本的Ubuntu,并进入交互模式。进入点是 /bin/bash #-it前台交互模式,即运行后进进入了Ubuntu #ubuntu ubuntu是镜像的名字,如果本地没有此镜像名字,会自动下载到本地 #ubuntu:[TAG] 后面的[TAG] 可以指定版本号,具体版本号可以去hub.docker.com进行查询,如果没写此版本号,则下载ubuntu:latest 版本;注意latest版本不一定是最新的 docker run -it ubuntu /bin/bash #具体的参数 #--name="容器新名字" 为容器指定一个名称; docker run -it --name myUbuntu ubuntu /bin/bash #运行一个Ubuntu,指定名字是myUbuntu ,名字是随意的,但不能和已有容器名字相同,如果不指定,随机生成个名字 #-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行); docker run -d ubuntu /bin/bash #上面这句运行后,容器启动后会直接停止,因为什么都没干,容器就自动暂停了 #-i:以交互模式运行容器,通常与 -t 同时使用; #-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用; docker run -it ubuntu /bin/bash #正常启动了一个交互模式的容器 #下面后台启动了容器,并分配了交互模式,此容器会在后台一直运行 docker run -idt ubuntu /bin/bash #-P: 随机端口映射,大写P 一般不使用此项 #-p: 指定端口映射,小写p docker run -idt -p 6666:8080 ubuntu /bin/bash #后台启动一个容器,并将本地的6666挂载到容器的 8080端口,这时候访问系统的6666端口,就可以直接访问到容器的8080端口 #-v 挂载指定的目录 docker run -idt -v /data/config:/etc/config ubuntu /bin/bash #将系统文件夹/data/config 挂载到容器内 /etc/config 文件夹,退出运行中的容器
#启动并进入容器 docker run -it ubuntu /bin/bash #1.退出容器,输入exit退出,此种退出,容器将停止 #按键盘 ctrl+p+q退出,此种退出,容器继续运行容器启停的几个命令
#启动一个停止的容器 docker start 容器ID或者容器名 #停止一个正在运行的容器 docker stop 容器ID或者容器名 #重启一个容器 docker restart 容器ID或者容器名 #强制停止一个容器 docker kill 容器ID或者容器名 #删除一个停止的容器 dockert rm 容器ID或者容器名 #强制删除一个容器,无论是否在运行中 dockert rm -f 容器ID或者容器名 #删除多个容器 docker rm -f 容器ID1 容器ID2 容器ID3 #查询后删除,下面的语句会删除所有的容器 docker rm -f $(docker ps -a -q) #查看容器日志 docker logs 容器ID或者容器名 #查看容器的运行的进程 docker top 容器ID或者容器名 #查看容器的配置,如挂载,网络,等等,容器的配置信息 docker inspect 容器ID或者容器名进入容器命令
#一个已经运行的容器,如果想进入 docker exec -it 容器ID或者容器名 /bin/bash #上面命令进入到了shell, #/bin/bash 并不是唯一的,也可能是/bin/sh,因为容器内可能使用不同的shell #重新进入容器 docker attach 容器ID #exec 和attach的区别 #exec是开启了一个新的线程进入到容器 #attach是理由已有的进程进入,如果这样进入后执行exit命令,容器可能会暂停拷贝文件到容器
#第一种方式 docker cp 容器ID:容器内路径 系统文件路径 #第二种方式 #如果使用了-v 进行文件夹挂载,则直接拷贝文件到 挂载目录即可
##容器归档
#将容器内容保存到硬盘上 docker export 容器ID > test.tar.gz #将此归档文件导入到镜像 cat test.tar.gz | docker import - 镜像用户/镜像名:镜像版本号 #镜像用户 就是当前的登录用户,我用的root常用的镜像命令就这这里了



