Docker——常用命令(帮助命令 & 镜像命令 & 容器命令)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker——常用命令(帮助命令 & 镜像命令 & 容器命令)

文章目录:


1.开篇

2.帮助命令

2.1 docker version

2.2 docker info

2.3 docker --help

3.镜像命令

3.1 docker images

3.2 docker search

3.3 docker pull

3.4 docker rmi

4.容器命令

4.1 docker run(启动交互式容器)

4.2 docker ps

4.3 docker start

4.4 docker restart

4.5 docker stop

4.6 docker kill

4.7 docker rm

4.8 docker run(启动守护式容器)

4.9 docker logs

4.10 docker top

4.11 docker inspect

4.12 docker exec

4.13 docker attach

4.14 docker cp

1.开篇


所有Docker相关的命令,均来自Docker的官方文档:https://docs.docker.com/engine/reference/commandline/top/

2.帮助命令


2.1 docker version

查看docker版本信息


2.2 docker info


显示系统范围的信息


2.3 docker --help


查看docker中的所有命令及相关参数信息

3.镜像命令


3.1 docker images

列出本地主机上都有哪些镜像。

各个选项说明:

·       REPOSITORY:表示镜像的仓库源

·       TAG:镜像的标签(版本号)

·       IMAGE ID:镜像ID(可以理解为数据库表的主键)

·       CREATED:镜像创建时间

·       SIZE:镜像大小

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
如果你不指定一个镜像的版本标签,例如你只使用 ubuntudocker 将默认使用 ubuntu:latest 镜像

-a : 列出本地所有的镜像(含中间映像层)。

-q :只显示镜像ID

--digests : 显示镜像的摘要信息。

--no-trunc :显示完整的镜像信息。


3.2 docker search

Docker Hub中搜索某个镜像。

不加参数,则默认检索出所有tomcat相关的镜像信息。

--limit,表示从检索记录中筛选出最大搜索的结果;1表示只筛选出1条。

--filter,表示根据提供的条件进行过滤;stars=5000表示过滤掉starts低于5000nginx镜像信息。


3.3 docker pull

从仓库注册服务器中拉取某个仓库或者镜像。


3.4 docker rmi

删除一个或多个镜像。

单独的执行 docker rmi images镜像名,会报错,需要加上 --force-f)进行强制删除。

删除多个镜像:docker rmi -f 镜像名1:TAG 镜像名2:TAG

删除全部镜像:docker rmi -f $(docker images -qa)  这个$中的内容docker images -qa,就是先检索出本地主机上都有哪些镜像,然后逐一删除。有点类似于mysql中的where id in100110021003)、java中的iterator迭代器。

4.容器命令


根据docker三要素(仓库、镜像、容器)可以知道,有镜像才可以生产容器实例运行。

所以下面我首先从Docker Hub上拉取一个centos做测试。


4.1 docker run(启动交互式容器)

新建并启动容器。


·       --name="容器新名字": 为容器指定一个名称;

·       -d: 后台运行容器,并返回容器ID,也即启动守护式容器;

·       -i:以交互模式运行容器,通常与 -t 同时使用;

·       -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;

·       -P: 随机端口映射;

·       -p: 指定端口映射,有以下四种格式

        ip:hostPort:containerPort
        ip::containerPort
        hostPort:containerPort
        containerPort


箭头所指的命令等价于:docker run -it afb6fca791e0 /bin/bash,此处启动的是交互式容器,也就是在当前宿主机的docker中,新开了一个linux终端。


docker开启一个linux终端之后,对比这里的IMAGE IDCONTAINER ID可以看到,当前的mycentos是根据centos这个镜像生产的容器实例。


4.2 docker ps

列出当前所有正在运行的容器。

·       -a :列出当前所有正在运行的容器+历史上运行过的

·       -l :显示最近创建的容器。

·       -n:显示最近n个创建的容器。

·       -q :静默模式,只显示容器编号。

·       --no-trunc :不截断输出。

退出容器有两个命令:exit:将容器停止并退出;ctrl + P + Q:容器不停止的情况下退出。

下面执行完 docker run -it afb6fca791e0 /bin/bash 进入docker中的linux终端之后,exit退出,然后可以使用docker ps -l 查看最近创建的容器;也可以docker ps -a查看历史上运行过的所有容器。



4.3 docker start

4.4 docker restart

4.5 docker stop

4.6 docker kill


上面四个分别是:启动容器、重启容器、优雅停止容器、暴力停止容器。


4.7 docker rm

删除已停止的容器。

删除单个容器:docker rm -f 容器ID

删除多个容器:docker rm -f $(docker ps -qa)


4.8 docker run(启动守护式容器)

#使用镜像centos:latest以后台模式启动一个容器
docker run -d centos

问题:然后docker ps -a 进行查看,会发现容器已经退出
很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令(比如运行toptail),就是会自动退出的。

这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如service nginx start
但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀因为他觉得他没事可做了。
所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行。


4.9 docker logs


查看容器日志信息。

*   -t 是加入时间戳
*   -f
跟随最新的日志打印
*   --tail
数字显示最后多少条


4.10 docker top

前面那个docker ps是列出当前主机中正在运行的所有容器。而docker top则是查看容器内正在运行的进程。


4.11 docker inspect

查看容器的内部细节。


4.12 docker exec

4.13 docker attach

上面这两个命令都是进入正在运行的容器,并以命令行形式交互。

两者的区别是:attach是直接进入容器启动命令的终端,不会启动新的进程。exec是在容器中打开新的终端,并且可以启动新的进程。

可以看到attach执行之后,则是直接进入了linux的终端。而exec如果在后面添加相应的linux命令则可以不进入linux终端,仍然处在当前宿主机中。


4.14 docker cp

将容器中的文件拷贝的主机中。


相关文章
|
1月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
138 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
2月前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
93 5
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
2月前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
160 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
1月前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
129 11
|
2月前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
78 3
实战~如何组织一个多容器项目docker-compose
|
2月前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
136 24
|
5月前
|
Linux Docker 容器
Docker操作 :容器命令
Docker操作 (四)
220 56
|
4月前
|
安全 Shell Linux
docker进入容器命令
docker进入容器命令
129 1
|
5月前
|
应用服务中间件 Shell nginx
Docker容器操作基础命令
关于Docker容器操作基础命令的教程,涵盖了从启动、查看、删除容器到端口映射和容器信息获取的一系列常用命令及其使用方法。
148 14
|
4月前
|
Linux 应用服务中间件 Shell
docker学习--docker容器镜像常用命令大全(简)
本文档详细介绍了Docker中的镜像命令与容器管理命令。镜像命令部分涵盖了镜像搜索、下载、上传等操作;容器管理命令则包括了容器的创建、启动、停止、删除及日志查看等功能。通过具体示例,帮助用户更好地理解和使用Docker相关命令。
261 0