目录
一、帮助命令
1.1. version 显示docker版本信息
1.2. info 显示docker信息
1.3. help帮助命令
二、镜像命令
2.1. images 查看所有本地镜像
2.2. search 搜索镜像
2.3. pull 下载镜像
2.4. rmi 删除镜像
2.5. rm 用完即删
2.6. inspect 查看镜像元数据
三、容器命令
3.1. 新建容器并启动
3.2. exit 从容器中退回主机
3.3. ps 列出当前正在运行的容器
3.4. 退出容器
3.5. 删除容器
3.6. 启动/停止容器
3.7. logs 查看容器日志
3.8. top 查看容器内部进程信息
3.9. exec 进入正在运行的容器
3.10. 容器——主机文件拷贝
Docker官方文档 命令使用查看
https://docs.docker.com/reference/cli/docker/
本章节通过带着大家实操一些Docker的常用命令,来加深对Docker的理解,同时这些命令也是日常工作中使用频率最高的。
一、帮助命令
1.1. version 显示docker版本信息
#显示已安装docker的版本信息
docker version
1.2. info 显示docker信息
# 显示docker的系统信息,包括镜像和容器的数量
docker info
1.3. help帮助命令
# 帮助命令
docker 命令 --help
二、镜像命令
2.1. images 查看所有本地镜像
# 查看所有本地主机上的镜像
docker images
部分可选项:-a, --all 列出所有镜像-q, --quiet 仅显示镜像的ID
镜像显示字段介绍 | |
REPOSITORY | 镜像仓库源 |
TAG | 镜像的标签 |
IMAGE ID | 镜像的id |
CREATED | 镜像的创建时间 |
SIZE | 镜像的大小 |
2.2. search 搜索镜像
# 搜索镜像(这里搜索mysql的镜像)
docker search mysql
-f, --filter 添加过滤条件
# 搜索星标为3000的mysql
docker search mysql --filter=STARTS=3000
2.3. pull 下载镜像
镜像仓库地址:
https://image.cgdcgd.cc/_/nginx
# 下载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、标签、大小、创建时间和所有者等信息。
docker inspect 镜像id
三、容器命令
有了镜像才可以创建容器,下面我们通过在本地Linux环境下下载一个centos镜像来进行操作练习
# 下载centos镜像
docker pull centos
3.1. 新建容器并启动
docker run [可选参数] image
可选项:
-d, --detach 后台方式运行镜像容器
-i, --interactive 即使没有连接也要保持打开
-p, --publish list 指定容器的端口
-p ip: 主机端口:容器端口
-p 主机端口:容器端口 常用
-p 容器端口
-P, --publish-all 随机指定端口
-t, --tty 分配一个虚拟终端
i和t通常结合使用,进入容器交互运行
# 启动并进入容器
docker run -it centos /bin/bash
我们可以对比下进入容器前和没进入前,Linux根目录下的区别:
查看对比发现,容器内的centos相对而言属于基础版,很多命令是不完善的。
3.2. exit 从容器中退回主机
exit
3.3. ps 列出当前正在运行的容器
docker ps
可选项:
-a, --all 列出当前正在运行的容器+带出历史运行过的容器
-n, --last int 显示最近创建的容器
-l, --latest 显示最近创建的容器
-q, --quiet 仅显示容器的id
显示最近创建的一个容器:
3.4. 退出容器
exit 直接停止容器并退出
Ctrl+P+Q 容器不停止退出
3.5. 删除容器
# 删除指定容器,不能删除正在运行的容器,如果要删除必须要加-f
docker rm 容器id
# 删除所有容器
docker rm $(docker ps -aq)
# 删除所有的容器
docker ps -a -q|xargs docker rm
注:xargs命令的作用是将标准输入转换为命令行参数,常与管道配合使用,解决了大多数命令不接受标准输入作为参数的问题。它能够将标准输入的数据作为命令的参数,从而扩展了命令的功能和使用场景。xargs命令在Linux中非常有用,尤其是在处理大量数据或自动化任务时,它可以将一个命令的输出作为另一个命令的输入,实现数据的流转和处理。
3.6. 启动/停止容器
# 启动容器
docker start 容器id
# 重启容器
docker restart 容器id
# 停止当前正在运行的容器
docker stop 容器id
# 强制停止当前正在运行的容器
docker kill 容器id
3.7. logs 查看容器日志
docker logs -f -t --tail 10 容器id
可选项:
-f, --follow 跟踪时时日志
-n, --tail string 显示要查看的日志总行数
-t, --timestamps 显示时间戳
3.8. top 查看容器内部进程信息
docker top
每一列的含义如下:
UID:运行进程的用户ID。
PID:进程ID。
PPID:父进程ID。
C:CPU使用率。
STIME:进程启动时间。
TTY:终端ID。
TIME:运行时间。
CMD:启动进程的命令。
3.9. exec 进入正在运行的容器
docker exec -it 容器id /bin/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:
docker run -it ubuntu /bin/bash
使用 docker exec
在已运行的容器中执行命令。例如,如果你有一个运行中的容器名为 my_container
,你想在其中运行 ls
命令,可以使用:
docker exec my_container ls
注意:确保容器在使用 docker exec
命令之前是运行状态。如果容器不在运行状态,可以使用 docker start
命令先启动容器。
3.10. 容器——主机文件拷贝
docker cp 容器id:文件在容器中的路径 主机路径
拷贝是一个手动的过程,后续章节我们学了"卷"的技术后,就可以实现容器之间以及容器与主机间的数据共享。
本章节内容到此结束,下一章节将讲解常用软件(Nginx、Tomcat、ES等)在docker中的安装。
后续内容会每天持续更新中……