Docker - 常用基础命令
2016-12-24 14:21
781 查看
Docker命令分布
帮助信息
查看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
镜像操作
镜像体积Docker Hub 中显示的体积是压缩后的体积。
docker images 显示的是镜像下载到本地后,展开后的各层所占空间的总和。
由于相同的层只需要保存一份,因此实际镜像硬盘占用空间可能比docker images 显示的镜像体积总和要小。
虚悬镜像
无标签镜像(既没有仓库名,也没有标签,显示为none)被称为虚悬镜像(dangling image)。一般来说,虚悬镜像没有存在价值,可以删除。
显示虚悬镜像:docker images -f dangling=true
删除虚悬镜像:docker rmi $(docker images -q -f dangling=true)
中间层镜像
显示包括中间层镜像在内的所有镜像: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)
容器操作
容器是独立运行的一个或一组应用,以及它们的运行态环境。查看运行状态的容器: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 exec
创建并启动容器: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 network ls查看网络详细信息:docker network inspect NET_NAME
相关文章推荐
- Docker基础系列(二)一张图看懂Docker常用命令
- Docker安装教程Centos7和Docker基础使用常用命令
- 【Dockerfile】CentOS6.x中Docker通过Dockerfile构建常用的基础环境 # 设置基本的镜像,后续命令都以这个镜像为基础 FROM centos # 作者信息 MAI
- Docker常用的基础命令
- docker筑基篇-01-docker基础命令及常用选项
- docker centos redis 基础常用命令
- docker 系列 - 基础镜像环境和Docker常用命令整理
- Docker学习之常用的基础命令总结
- Docker - 常用基础命令
- 本人常用的基础 linux命令
- mysql -- 基础 -- 常用命令
- LINUX常用命令(基础)
- Maven2 基础教程(2) - 常用命令
- linux常用命令(基础)
- 鸟哥私房菜 Linux最常用的基础命令总结
- 整理基础的CentOS常用命令
- Linux网络基础常用命令.四
- RHCE课程-RH033Linux基础笔记五之常用文本处理命令、输入输出重定向、管道
- linux 目录结构+常用命令+压缩命令+vim使用+及一些基础知识(非常好)
- LINUX常用命令(基础)