码迷,mamicode.com
首页 > 其他好文 > 详细

Docker 容器镜像删除

时间:2019-01-17 23:56:52      阅读:392      评论:0      收藏:0      [点我收藏+]

标签:emctl   自己   linux系统   ack   src   运行   install   ima   帮助   

1.停止所有的container,这样才能够删除其中的images

docker stop $(docker ps -a -q)

如果想要删除所有container的话再加一个指令:

docker rm $(docker ps -a -q)

2.查看当前有些什么images

docker images

3.删除images,通过image的id来指定删除谁

docker rmi <image id>

想要删除untagged images,也就是那些id为<None>的image的话可以用

docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

要删除全部image的话

docker rmi $(docker images -q)


yum install docker 安装服务
systemctl start docker.service 启动服务
systemctl enable docker.service 开机启动服务
docker pull centos 下载映像到本地
docker images centos 查看映像列表
docker run -i -t centos /bin/bash 以交互式启动容器
docker run centos echo ‘Hello World‘

(1)启动,systemctl start docker.service
(2)开机启动,systemctl enable docker.service
(3)帮助,docker --help
(4)概要信息,docker info
(5)镜像查看,docker images
(6)容器查看,即进程查看,docker ps -a
(7)最近容器查看, docker ps -l

(1)下载镜像,docker pull nginx
(2)启动容器,docker run -d -p 8080:80 nginx,把容器内的nginx的80端口,映射到当前服务器的8080端口,当前服务器的ip是192.168.1.120,浏览器输入http://192.168.1.120:8080/,就可以看到nginx已启动,
(3)再启动多一个容器,docker run -d -p 8081:80 nginx,浏览器输入http://192.168.1.120:8081/,就可以看到另外一个nginx已启动
也可以通过curl 127.0.0.1:8080 来测试是否打开相应端口
(4)到这里就能体现出Docker部署应用和传统部署应用的区别了,传统部署的话,需要人工拷贝多一份nginx,再配置端口,而Docker部署的话,在已制作好的镜像基础上,一条命令就可以部署一个新的应用
(5) docker inspect a219737ce905 通过命令找到容器端口,可以宿主机直接访问容器:http://172.17.0.2/:80

(1)docker ps -a 可以显示容器id
(2)docker stop 8dc6a2b6f903 停止容器
(3)docker rm 8dc6a2b6f903 删除容器
(4)docker ps 显示当前正在运行的容器

docker commit 235923e34a nginx/centos 将自己构建好的235923e34a容器提交到本地当作下次可以再次使用的映像
docker run --name=nexus -i -t centos /bin/bash
docker inspect nexus
docker start -i nexus 重新启动已经停止的容器

docker run --name=nexus -i -t centos /bin/bash CTRL + P CTRL + Q 退出交互式,以后台服务运行
docker attach nexus 可把后台运行服务提升到交互式运行
docker run --name=nexus -d centos /bin/sh -c "while true; do echo ‘hello world‘; sleep 1; done"
docker logs -t -f --tail 10 nexus 显示nexus容器打印的最新10条日志,指定10为0时,显示所有日志
docker top nexus 查看nexus进程运行情况
docker exec -i -t nexus /bin/bash 在已经启动的nexus容器中加入新的进程bash,CTRL + P CTRL + Q 退出交互式,以后台服务运行,利用docker top nexus命令可以查看进程
docker stop nexus 发送一个停止信号,优雅停止容器
docker kill nexus 直接停止容器
docker network ls 查看容器创建的网络

docker attach 容器ID 和 docker exec -it 容器ID 都可以将容器提升到前台。但是attach方法,当在容器中exit时,容器会退出,即使是启动时候指定是后台启动;而exec方法,在窗口中exit时,仅仅是退出当前操作终端,而不会退出进程。
这仅仅是docker的常用操作命令,要深入学习还要多看官方文档,多学Linux系统操作。
推荐《第一本Docker书》作为入门。

 

 


 

 

docker下删除两个id相同的镜像

今天建立docker容器的时候由于疏忽,镜像的名字输错了,结果容器创建成功后,镜像中出现两个id相同的:

技术分享图片

 

使用docker rmi e4a35914679d删除的时候执行失败:

Error response from daemon: conflict: unable to delete e4a35914679d (must be forced) - image is referenced in one or more repositories

提示应该是该id有两个本地文件,不能用id删除。

所以我想删除所有镜像docker rmi $(docker images -q),出现下面错误

Error response from daemon: conflict: unable to delete e4a35914679d (must be forced) - image is referenced in one or more repositories

 技术分享图片

 

后来在Stack Overflow删看到使用repository和tag进行操作的,所以执行docker rmi docker.io/redis:3.2

 技术分享图片

 

再次查询的时候只剩下一个镜像,删除OK。

 

所以,可以使用repository:tag的组合来删除特殊的镜像。

 

Docker 容器镜像删除

标签:emctl   自己   linux系统   ack   src   运行   install   ima   帮助   

原文地址:https://www.cnblogs.com/xtjatswc/p/10285349.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!