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

简介: 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

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


相关文章
|
7月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
830 124
|
7月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
836 6
|
10月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
3431 75
|
9月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
582 16
|
11月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p <宿主机端口>:<容器端口>`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
1324 57
|
网络协议 Ubuntu Docker
Docker Compose--命令说明
Docker Compose--命令说明
2162 30
|
9月前
|
Ubuntu 网络安全 PHP
如何使用vscode的Docker插件管理ubuntu 拉取服务器的镜像以及创建容器
本测试镜像旨在记录使用vscode的Docker插件拉取病创建Dockerfile,以及拉取镜像。
|
10月前
|
Docker 容器
熟悉Docker容器管理命令:start、stop与restart详细使用指南
掌握这些Docker容器管理命令对于维护应用程序的正常运行至关重要。在实际操作中,应注意容器配置、关联资源以及日志等信息,确保各项操作都能够顺畅并且安全地执行。
3016 0
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
763 4
|
9月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1268 108