目录
[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官方文档 命令使用查看
本章节通过带着大家实操一些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 | 镜像的大小 |
2.2. search 搜索镜像
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中的安装。
后续内容会每天持续更新中......