Docker - 常用基础命令
1 - Docker命令分布示意图

2 - 帮助信息
查看docker基本信息:docker info
查看docker版本信息:docker version
查看docker的所有命令及选项:docker --help
查看docker具体命令的详细用法:docker COMMAND --help
查看docker daemon的用法:docker daemon --help
查看docker run的用法:docker run --help 或者 man docker-run
3 - 镜像操作
3.1 镜像体积
Docker Hub 中显示的体积是压缩后的体积。
docker images 显示的是镜像下载到本地后,展开后的各层所占空间的总和。
由于相同的层只需要保存一份,因此实际镜像硬盘占用空间可能比docker images 显示的镜像体积总和要小。
3.2 虚悬镜像
无标签镜像(既没有仓库名,也没有标签,显示为none)被称为虚悬镜像(dangling image)。一般来说,虚悬镜像没有存在价值,可以删除。
显示虚悬镜像:docker images -f dangling=true
删除虚悬镜像:docker rmi $(docker images -q -f dangling=true)
3.3 中间层镜像
显示包括中间层镜像在内的所有镜像:docker images -a
中间层镜像是其它镜像所依赖的镜像。无论中间层镜像是否有标签,都不应该删除,否则会导致上层镜像因为依赖丢失而出错。
查找仓库中镜像: docker search IMAGE_NAME
拉取仓库中镜像到本地:docker pull IMAGE_NAME
显示镜像摘要信息: docker images --digests
显示镜像细节信息:docker inspect IMAGE_NAME
显示镜像历史: docker history IMAGE_NAME
显示镜像信息: docker images
[root@CentOS-7 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/eboraas/apache-php latest e95d111f807f 41 hours ago 283.9 MB
docker.io/python 2.7 acf0d719f268 3 weeks ago 676.1 MB
docker.io/centos latest 67591570dd29 4 weeks ago 191.8 MB
docker.io/redis latest d59dc9e6d0bf 4 weeks ago 182.9 MB
docker.io/ubuntu 15.10 9b9cb95443b5 5 months ago 137.2 MB
docker.io/hello-world latest c54a2cc56cbb 6 months ago 1.848 kB
[root@CentOS-7 ~]#
####
# REPOSITORY --- 镜像名称
# TAG --- 镜像版本,默认如果docker run不带版本就会拉取最新的版本latest
# MAGE ID --- 镜像短ID
# CREATED --- 镜像在仓库的创建时间
# VIRTUAL SIZE --- 镜像所占空间大小
# 不加任何参数的情况下, docker images 会列出所有顶级镜像。
# 可以根据仓库名、指定仓库名和标签等方式列出部分镜像,也可以通过--filter、--format、-q等参数显示特定内容。
删除镜像:docker rmi IMAGE_NAME
[root@CentOS-7 ~]# docker images ubuntu
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ubuntu 16.04 6a2f32de169d 12 days ago 117.2 MB
docker.io/ubuntu latest 6a2f32de169d 12 days ago 117.2 MB
docker.io/ubuntu 14.04 302fa07d8117 12 days ago 188 MB
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker rmi ubuntu:14.04
Untagged: ubuntu:14.04
Untagged: docker.io/ubuntu@sha256:edf05697d8ea17028a69726b4b450ad48da8b29884cd640fec950c904bfb50ce
Deleted: sha256:302fa07d8117297adb599cc4ed7400348de5fe0f7950291e4bc32938324371b2
Deleted: sha256:58ee5e1ccda6163bca1c6d26e0d9a9ca954131ddbcadb1dfea39f33bc4d8587e
Deleted: sha256:e4bab9dc9558a6a82a7370c9018459b44a01fbf44224bf4a497007318ed587c8
Deleted: sha256:85124bfb4ca4773e3b6e84f403f53511a6a27a783d5178e2ca45bc9b02e6591f
Deleted: sha256:e421effca6fd5a1c5f1e36c006e1751e5fa163a110b763295a86116adcc6d4f3
Deleted: sha256:638903ee85790805193e2709746d311a0224178933e6ad4083fc0eda81e9dfcd
[root@CentOS-7 ~]#
[root@CentOS-7 ~]# docker images ubuntu
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ubuntu 16.04 6a2f32de169d 12 days ago 117.2 MB
docker.io/ubuntu latest 6a2f32de169d 12 days ago 117.2 MB
[root@CentOS-7 ~]#
####
# 删除行为分为两类,一类是 Untagged ,另一类是 Deleted 。
# 镜像的唯一标识是其ID 和摘要,而一个镜像可以有多个标签
#
# docker rmi命令删除镜像的时候,实际上是取消镜像标签。标签被取消,显示Untagged信息。
# 当镜像所有的标签都被取消,失去了存在的意义,才会触发删除行为,显示Deleted信息。
# 如果仍然有其它标签指向了这个镜像,那么Delete行为就不会发生。
# 所以并非所有的 docker rmi 都会产生删除镜像的行为,有可能仅仅是取消了某个标签而已。
#
# 镜像是多层存储结构,因此在删除的时候也是从上层向基础层方向依次进行判断删除。
# 如果其它镜像正依赖于当前镜像的某一层,则不会触发删除该层的行为。直到没有任何层依赖当前层时,才会真实的删除当前层。
# 这可以解释,某些无标签镜像仍然存在和删除镜像的层数和pull层数不一致的现象。
#
# 容器依赖于镜像,因此删除镜像之前,必须先删除这个镜像启动的容器(即使容器没有运行)。
#
# 删除所有ubuntu镜像:docker rmi $(docker images -q ubuntu)
4 - 容器操作
容器是独立运行的一个或一组应用,以及它们的运行态环境。
查看运行状态的容器:docker ps
查看所有容器(包含exited状态):docker ps -a
查看容器细节信息:docker inspect <Name/ID>
查看容器日志: docker logs <Name/ID>
实时查看容器日志: docker logs -f -t <Name/ID>
创建容器:docker create
启动已终止容器:docker start <Name/ID>
停止容器: docker stop <Name/ID>
重启容器: docker restart <Name/ID>
结束容器: docker kill <Name/ID>
删除终止状态的容器:docker rm <Name/ID>
删除运行中的容器:docker rm -f <Name/ID>
创建并启动容器:docker run
当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:
1. 检查本地是否存在指定的镜像,不存在就从公有仓库下载
2. 利用镜像创建并启动一个容器
3. 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
4. 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
5. 从地址池配置一个 ip 地址给容器
6. 执行用户指定的应用程序
7. 执行完毕后容器被终止
[root@CentOS-7 ~]# docker run -it --rm ubuntu:16.04 bash
root@7f8001fb78da:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.2 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.2 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
root@7f8001fb78da:/#
root@7f8001fb78da:/# exit
exit
[root@CentOS-7 ~]#
####
# -i :打开并保持容器的标准输入
# -t :分配pseudo-TTY终端并绑定到容器的标准输入上
# -it 实际就是启动了一个可交互的容器,关联了终端和容器的stdin和stdout
# --rm :容器退出后,自动删除容器
# ubuntu:14.04 :使用ubuntu:14.04镜像为基础启动容器
# bash :交互式bash Shell
#
# --name 指定容器名字,否则会自动分配一个字符串名称
# -p 参数指定内外端口映射关系
# --pid 如果--pid=host,那么将在容器里面共享主机的 pid namespace
# --device 指定容器可使用的主机设备
在运行的容器中执行命令:docker exec
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c37a36e56859 docker.io/centos "/bin/bash" 4 minutes ago Up 4 minutes demo
[root@localhost ~]#
[root@localhost ~]# docker exec demo cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)
[root@localhost ~]#
[root@localhost ~]# docker exec -it demo /bin/bash # 通过docker exec命令执行/bin/bash来进入容器
[root@c37a36e56859 /]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)
[root@c37a36e56859 /]#
[root@c37a36e56859 /]# exit
exit
[root@localhost ~]#
####
# -i :打开并保持容器的标准输入
# -t :为容器分配伪终端pseudo-TTY
5 - 网络
- 查看网络信息:docker network ls
- 查看网络详细信息:docker network inspect NET_NAME
Docker - 常用基础命令的更多相关文章
- (三)、Docker常用基础命令
1.Docker 帮助命令 帮助命令: docker version 查看版本 docker info 查询docker详细信息 docker --help 查看命令帮助 2.Docker 镜像命令 ...
- Docker 使用笔记-常用基础命令
常用基础命令 环境:Linux Ubuntu 1.查看docker信息 docker version | docker info 2.启动docker服务 sudo systemctl start d ...
- docker专题(2):docker常用管理命令(上)
http://segmentfault.com/a/1190000000751601 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备 ...
- Linux常用基础命令整理:关机命令、查看目录下文件命令等
Linux常用基础命令整理:关机命令.查看目录下文件命令等 整理了一些Linux常用基础命令,欢迎指正. 首先记住四个热键,学会这四个键,收益一辈子. Tab按键---命令补齐功能Ctrl+c按键-- ...
- CentOS常用基础命令大全
这篇文章主要介绍了CentOS常用基础命令大全,学习centos的朋友需要掌握的知识,需要的朋友可以参考下 1.关机 (系统的关机.重启以及登出 ) 的命令shutdown -h now 关闭系统(1 ...
- MySQL数据库入门常用基础命令
MySQL数据库入门———常用基础命令 数据——公司的生命线,因此在大多数的互联网公司,都在使用开源的数据库产品,MySQL也因此关注度与使用率非常的高,所以做为运维的屌丝们,掌握它的一些基 ...
- Linux常用基础命令(二)
Linux常用基础命令 一.-ls--列表显示目录内容 二.-alias--设置别名 三.-du--统计目录及文件空间占用情况 四.-mkdir--创建新目录 五.-touch--创建空文件 六.-l ...
- Docker 容器安装及常用基础命令
为什么用docker 作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势. Docker 在如下几个方面具有较大的优势: 更快速的交付和部署 Docker在整个开发周期都可以 ...
- docker常用管理命令
本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: 容器生命周期管理 — docke ...
随机推荐
- 洛谷P1169 棋盘制作(悬线法)
题目链接:https://www.luogu.org/problemnew/show/P1169 #include<bits/stdc++.h> #define fi first #def ...
- body标签
标签(空格分隔): body标签 body标签: 想要在网页上展示出来的内容一定要放在body标签中. 把我们之前那一段HTML代码贴过来,保存到一个HTML格式的文件中. <!DOCTYPE ...
- GitHub下载子目录
背景 整个Github目录太大,国内网速不好,且其他部分也不需要. 方法 把 /tree/master 改成 trunk. svn checkout https://github.com/lodash ...
- leetcode3:无重复字符的最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度. 示例: 给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3. 给定 &q ...
- Python6大设计原则
内容总览 六大设计原则都有哪些 一.单一职责原则 二.里氏替换原则 三.依赖倒置原则 四.接口隔离原则 五.迪米特法则 六.开放封闭原则 内容详解 一.单一职责原则 单一职责原则:英文名称是Singl ...
- ----一个roadmap----
在课上了解到了学web前端三个基础,HTML.CSS.JS 从HTML开始,逐步学习CSS.JS 大致写了一个roadmap(应该是roadmap喔 就是这样,以后可能会来更错或者更新 对没错我来更错 ...
- MD5加密算法的Java版本
网上搜索Java实现MD5的资料很多,错误的也很多. 之前编写的一个阿里云直播鉴权原理算法需要用到MD5算法,网上找了几个,都是不行,浪费了时间,现在贴一个,做备用. import java.secu ...
- Python踩坑之 sys.argv[-1]代表什么
平台:win10+python 3.7.0 一.sys说明: sys.argv这个函数是我们写python脚本中最常用的一个函数. sys是Python的一个「标准库」,也就是官方出的「模块」,是「S ...
- 学以致用二十三-----shell脚本里调用脚本
当前脚本可以调用其他目录下的脚本,并可以直接使用其他脚本里的函数. 首先查看脚本目录 执行net_set.sh,同时执行colos.sh 并可直接使用 color.sh中的函数 net_set.sh ...
- getResource()和getResourceAsStream以及路径问题
用JAVA获取文件,听似简单,但对于很多像我这样的新人来说,还是掌握颇浅,用起来感觉颇深,大常最经常用的,就是用JAVA的File类,如要取得c:/test.txt文件,就会这样用File file ...