docker--使用镜像

版权声明:Don't trouble trouble until trouble troubles you. https://blog.csdn.net/JOJOY_tester/article/details/79182229
docker gitbook:

学习docker的过程中, 随着每一步的操作, 产生了大量停止工作的容器, 想快速的删除多个容器, 看了下docker rm --help, 加上stackoverflow上看到了别人的问答, 总结了2种批量删除容器的方法.
docker stop $(docker ps -qa) #停止所有容器
docker rm $(docker ps -qa) # 删除所有停止的容器
docker ps -qa | xargs -n 1 docker rm

使用镜像
搜索镜像:docker search ubuntu:16.04 #镜像名:版本号
从仓库拉去镜像:docker pull ubuntu:16.04 #镜像名:版本号
运行容器:docker run hello-world #容器名
docker run -i -t --rm ubuntu:16.04 bash
-i 交互式操作
-t 使用终端
--rm 容器退出后将其删除
ubuntu:16.04 使用ubuntu:16.04镜像基础来启动容器
bash 镜像名后的命令,这里是交互式shell
退出容器:exit
查看镜像
列出本地全部镜像(只会显示顶层镜像):docker image ls或docker images
仓库名 标签 镜像ID 创建时间 大小
镜像ID是镜像的唯一标识,一个镜像可以对应对个镜像 标签
便捷查看镜像、容器、数据卷所暂用空间:docker system df
查看虚悬镜像(无标签镜像):docker image ls -f dangling=true
虚悬镜像可以随意删除:docker image prune
列出所有镜像包括 中间层镜像(为了加速镜像构建、重复利用资源docker会利用中间层镜像):docker image ls -a,这些无标签的镜像很多是中间层镜像是其他顶层镜像所依赖的镜像, 不应该删除
列出某个镜像:docker image ls hello-world #镜像名:标签名
删除镜像
docker image rm hello-world #镜像名:标签名
docker image rm f2a91732366c #镜像ID
因为容器是以镜像为基础,再加一层容器存储层,组成这样的多层存储结构去运行的,若镜像被某个容器依赖了,需要先删除容器才能删除镜像。
提交镜像到本地存储库 (docker commit 慎用,容易造成镜像臃肿)
docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
eg:docker commit \
--author "李跃" \ #指定修改的作者
--message "修改了默认网页" \ #记录本次修改的内容
webserver \ #容器名称
nginx:v2 #新的镜像名称
docker run --name web2 -d -p 81:80 nginx:liyue
备注:这条命令会用 nginx 镜像启动一个容器,命名为 webserver,并且映射了 80 端口,这样我们可以用浏览器去访问这个 nginx 服务器
docker run 运行容器
--name:容器名
docker exec -it webserver bash
docker exec 进入容器
-it:使用终端交互式操作
webserver:容器名
bash:启用shell
退出容器:exit
在容器里面修改文件就是改变了容器的存储层(镜像、容器都是分层存储的),使用 docker diff webserver(容器名)查看改动
使用 docker history webserver(容器名)查看容器内修改历史










猜你喜欢

转载自blog.csdn.net/JOJOY_tester/article/details/79182229