第二章 Docker的常用命令

目录

一、帮助命令

[1.1. version 显示docker版本信息](#1.1. version 显示docker版本信息)

[1.2. info 显示docker信息](#1.2. info 显示docker信息)

[1.3. help帮助命令](#1.3. help帮助命令)

二、镜像命令

[2.1. images 查看所有本地镜像](#2.1. images 查看所有本地镜像)

[2.2. search 搜索镜像](#2.2. search 搜索镜像)

[2.3. pull 下载镜像](#2.3. pull 下载镜像)

[2.4. rmi 删除镜像](#2.4. rmi 删除镜像)

[2.5. rm 用完即删](#2.5. rm 用完即删)

[2.6. inspect 查看镜像元数据](#2.6. inspect 查看镜像元数据)

三、容器命令

[3.1. 新建容器并启动](#3.1. 新建容器并启动)

[3.2. exit 从容器中退回主机](#3.2. exit 从容器中退回主机)

[3.3. ps 列出当前正在运行的容器](#3.3. ps 列出当前正在运行的容器)

[​3.4. 退出容器](#3.4. 退出容器)

[3.5. 删除容器](#3.5. 删除容器)

[3.6. 启动/停止容器](#3.6. 启动/停止容器)

[3.7. logs 查看容器日志](#3.7. logs 查看容器日志)

[3.8. top 查看容器内部进程信息](#3.8. top 查看容器内部进程信息)

[3.9. exec 进入正在运行的容器](#3.9. exec 进入正在运行的容器)

[3.10. 容器------主机文件拷贝](#3.10. 容器——主机文件拷贝)


Docker官方文档 命令使用查看

https://docs.docker.com/reference/cli/docker/

本章节通过带着大家实操一些Docker的常用命令,来加深对Docker的理解,同时这些命令也是日常工作中使用频率最高的。

一、帮助命令

1.1. version 显示docker版本信息

bash 复制代码
#显示已安装docker的版本信息
docker version

1.2. info 显示docker信息

bash 复制代码
# 显示docker的系统信息,包括镜像和容器的数量
docker info 

1.3. help帮助命令

bash 复制代码
# 帮助命令
docker 命令 --help 

二、镜像命令

2.1. images 查看所有本地镜像

bash 复制代码
# 查看所有本地主机上的镜像
docker images 
bash 复制代码
部分可选项:
  -a, --all  列出所有镜像
  -q, --quiet  仅显示镜像的ID

|------------|---------|
| 镜像显示字段介绍 ||
| REPOSITORY | 镜像仓库源 |
| TAG | 镜像的标签 |
| IMAGE ID | 镜像的id |
| CREATED | 镜像的创建时间 |
| SIZE | 镜像的大小 |

bash 复制代码
# 搜索镜像(这里搜索mysql的镜像)
docker search mysql
bash 复制代码
-f, --filter  添加过滤条件
bash 复制代码
# 搜索星标为3000的mysql
docker search mysql --filter=STARTS=3000

2.3. pull 下载镜像

镜像仓库地址:

https://image.cgdcgd.cc/_/nginx

bash 复制代码
# 下载mysql镜像到本地
docker pull mysql 

默认的tag是latest即最新版,想要追加指定版本:

docker pull nginx:版本号

2.4. rmi 删除镜像

根据镜像ID删除指定镜像

删除images命令查出来的所有镜像

2.5. rm 用完即删

使用--rm参数后,从仓库拉取镜像启动后,tomcat容器启动完毕后,后续停止使用tomcat容器会被自动删除,镜像还在。

# 想要用完立即删除容器,临时测试使用,可以增加参数--rm
docker run -it --rm tomcat:9.0

2.6. inspect 查看镜像元数据

Docker镜像元数据是指存储在Docker守护进程中关于镜像的信息,它包括镜像的ID、标签、大小、创建时间和所有者等信息。

bash 复制代码
docker inspect 镜像id

三、容器命令

有了镜像才可以创建容器,下面我们通过在本地Linux环境下下载一个centos镜像来进行操作练习

bash 复制代码
# 下载centos镜像
docker pull centos

3.1. 新建容器并启动

bash 复制代码
docker run [可选参数] image

可选项:

-d, --detach 后台方式运行镜像容器

-i, --interactive 即使没有连接也要保持打开

-p, --publish list 指定容器的端口

-p ip: 主机端口:容器端口

-p 主机端口:容器端口 常用

-p 容器端口

-P, --publish-all 随机指定端口

-t, --tty 分配一个虚拟终端

i和t通常结合使用,进入容器交互运行

bash 复制代码
# 启动并进入容器
docker run -it centos /bin/bash

我们可以对比下进入容器前和没进入前,Linux根目录下的区别:

查看对比发现,容器内的centos相对而言属于基础版,很多命令是不完善的。

3.2. exit 从容器中退回主机

bash 复制代码
exit

3.3. ps 列出当前正在运行的容器

bash 复制代码
docker ps

可选项:

-a, --all 列出当前正在运行的容器+带出历史运行过的容器

-n, --last int 显示最近创建的容器

-l, --latest 显示最近创建的容器

-q, --quiet 仅显示容器的id

显示最近创建的一个容器:

3.4. 退出容器

exit 直接停止容器并退出

Ctrl+P+Q 容器不停止退出

3.5. 删除容器

bash 复制代码
# 删除指定容器,不能删除正在运行的容器,如果要删除必须要加-f
docker rm 容器id
# 删除所有容器
docker rm $(docker ps -aq)
# 删除所有的容器
docker ps -a -q|xargs docker rm

注:xargs命令 ‌的作用是将标准输入转换为命令行参数,常与管道配合使用,解决了大多数命令不接受标准输入作为参数的问题。它能够将标准输入的数据作为命令的参数,从而扩展了命令的功能和使用场景。xargs命令在Linux中非常有用,尤其是在处理大量数据或自动化任务时,它可以将一个命令的输出作为另一个命令的输入,实现数据的流转和处理。

3.6. 启动/停止容器

bash 复制代码
# 启动容器
docker start 容器id
# 重启容器
docker restart 容器id
# 停止当前正在运行的容器
docker stop 容器id
# 强制停止当前正在运行的容器
docker kill 容器id

3.7. logs 查看容器日志

bash 复制代码
docker logs -f -t --tail 10 容器id

可选项:

-f, --follow 跟踪时时日志

-n, --tail string 显示要查看的日志总行数

-t, --timestamps 显示时间戳

3.8. top 查看容器内部进程信息

bash 复制代码
docker top

每一列的含义如下:

**UID:**运行进程的用户ID。

**PID:**进程ID。

**PPID:**父进程ID。

**C:**CPU使用率。

**STIME:**进程启动时间。

**TTY:**终端ID。

**TIME:**运行时间。

**CMD:**启动进程的命令。

3.9. exec 进入正在运行的容器

bash 复制代码
docker exec -it 容器id /bin/bash
bash 复制代码
docker attach -it 容器id /bin/bash

exec和attach两者的区别

docker exec:进入容器后开启一个新的终端,可以在里面操作(常用)

docker attach:进入容器正在执行的终端,不会启动新的进程

docker run和exec的区别

docker run:创建一个新的容器并运行一个命令。

docker exec:在运行中的容器中执行命令。

主要区别在于它们的使用场景:

  • 使用 docker run 来启动一个新容器,并在此过程中运行一个命令。这适用于启动新应用程序或服务。

  • 使用 docker exec 在一个已经运行的容器中执行额外的命令。这适用于进入容器内部进行操作或调试。

使用 docker run 运行一个新的 Ubuntu 容器并启动 bash shell:

bash 复制代码
docker run -it ubuntu /bin/bash

使用 docker exec 在已运行的容器中执行命令。例如,如果你有一个运行中的容器名为 my_container,你想在其中运行 ls 命令,可以使用:

bash 复制代码
docker exec my_container ls

注意:确保容器在使用 docker exec 命令之前是运行状态。如果容器不在运行状态,可以使用 docker start 命令先启动容器。

3.10. 容器------主机文件拷贝

bash 复制代码
docker cp 容器id:文件在容器中的路径 主机路径

拷贝是一个手动的过程,后续章节我们学了"卷"的技术后,就可以实现容器之间以及容器与主机间的数据共享。

本章节内容到此结束,下一章节将讲解常用软件(Nginx、Tomcat、ES等)在docker中的安装。

后续内容会每天持续更新中......

相关推荐
昌sit!1 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
追风林2 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
一坨阿亮2 小时前
Linux 使用中的问题
linux·运维
A ?Charis3 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
城南vision4 小时前
Docker学习—Docker核心概念总结
java·学习·docker
wclass-zhengge4 小时前
Docker篇(Docker Compose)
运维·docker·容器
李启柱4 小时前
项目开发流程规范文档
运维·软件构建·个人开发·设计规范
北漂IT民工_程序员_ZG4 小时前
k8s集群安装(minikube)
云原生·容器·kubernetes
力姆泰克5 小时前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节
BPM_宏天低代码5 小时前
低代码 BPA:简化业务流程自动化的新趋势
运维·低代码·自动化