zoukankan      html  css  js  c++  java
  • Docker 容器镜像删除

    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的组合来删除特殊的镜像。

  • 相关阅读:
    Web Browser使用技巧
    Excel 函数
    删除文件夹, 解决源文件名长度大于文件系统支持的长度问题
    Send Mail using C# code
    动态规划——最长回文子串
    字符串处理总结
    打印日期
    A+B
    对称矩阵
    最小年龄的3个职工
  • 原文地址:https://www.cnblogs.com/grimm/p/11812919.html
Copyright © 2011-2022 走看看