文章目录
- 3.Docker常用命令
- 3.1帮助启动类命令
- 3.2镜像命令
- 3.3有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)
- 3.4容器命令
- 3.4.1新建+启动容器
- 3.4.2列出当前所有正在运行的容器
- 3.4.3退出容器
- 3.4.4启动已停止运行的容器
- 3.4.5重启容器
- 3.4.6停止容器
- 3.4.7强制停止容器
- 3.4.8删除已停止的容器
- 3.4.9重要
- 3.4.9.1启动守护式容器(后台服务器)
- 3.4.9.2查看容器日志
- 3.4.9.3查看容器内运行的进程
- 3.4.9.4查看容器内部细节
- 3.4.9.5进入正在运行的容器并以命令行交互
- 3.4.9.6容器文件的上传和下载
- 3.4.9.7导入和导出容器
- 3.4.9.8查看docker版本信息和系统信息
- 3.4.9.9docker save命令
- 3.4.9.10docker build命令
- 3.4.9.11docker上传镜像
- 3.4.9.12docker修改标签版本号
- 3.4.9.13docker 将本地镜像上传到镜像仓库(要先登陆到镜像仓库)
- 3.4.9.14docker容器内删除文件
- 3.4.9.15 docker commit命令提交容器副本使之成为一个新的镜像
- 3.5小总结
- 本人其他相关文章链接
3.Docker常用命令
一句话:镜像时模板,而容器才是真真正正干活的实例对象或实例容器 -> 由镜像生成容器实例。
3.1帮助启动类命令
3.2镜像命令
注意点1:
列出本地主机上的镜像
注意点2:
docker search 某个XXX镜像名字
注意点3:
docker pull 某个XXX镜像名字
注意点4:
docker system df 查看镜像/容器/数据卷所占的空间
注意点5:
问题:面试题:谈谈docker虚悬镜像是什么?
答案:
仓库名、标签都是的镜像,俗称虚悬镜像dangling image,建议把虚悬镜像删除,不然docker打包编译部署可能会发生问题。
注意点6:
docker rmi -f 镜像ID
其中 -f
:用于强制删除
如果不写-f,那么如果改容器服务正在运行,那么无法删除,报错如图1,而输入-f,则会执行强制删除。
3.3有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)
注意点1:
问题:为啥案例使用ubuntu而不是使用centos?
答案
:因为centos太大了,ubuntu很小,方便案例使用。
3.4容器命令
3.4.1新建+启动容器
注意点1:
- 新建+启动容器:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
其中OPTIONS说明 - 启动交互式容器(前台命令行)
注意点2:
问题:启动容器命令 :docker run -it中-it参数 干啥用的?
答案
:其中:-it
指代 你启动后对你有进一步的命令输入请求,需要你返回给我一个终端,我需要输入命令来操纵你的容器实例。
注意点3:
问题:大写-P 和 小写-p参数干啥用的? 一般用小写的 -p
答案
:请参照“Docker平台架构图解(架构版)”,如图1红框部分,我用docker模拟一个redis服务,现在想外部访问redis服务那该怎么办呢? 答案得配置端口映射 -p 6379:6379
,如图2,外面访问第一个6379端口找到docker,然后docker又会去容器中找第二个6379端口对应的暴露出来的服务。(即:-p 6379:6379左面6379为宿主机暴露的端口,而右面的6379docker访问redis服务对应的端口
)
如图1
如图2
注意点4:
执行命令docker run -it redis
发现也可以运行, 答案时后面不带bash或者/bin/bash,那么默认也会自带脚本运行。
3.4.2列出当前所有正在运行的容器
注意点1:
列出当前所有正在运行的容器: docker ps [OPTIONS]
其中OPTIONS说明
注意点2:
如图1,CONTAINER ID指代容器ID,这里尾号adbb就对应如图2中的容器ID,另外NAME指代容器名字,如果未设置名字,那么系统自动随机分配一个名字,这里的pebsive_swanson就是系统自动随机分配的一个名字。如果如图3中启动服务时设置名字,那么如图1中NAME属性就会显示myu1的名字。
如图1
如图2
如图3
3.4.3退出容器
3.4.4启动已停止运行的容器
3.4.5重启容器
3.4.6停止容器
3.4.7强制停止容器
3.4.8删除已停止的容器
注意点1:
docker rm
-> 删除容器
docker rmi
-> 删除镜像
注意点2:
问题:如何删除正在运行的容器?
答案
:有2种方式,方式1,先停止再删除,如图1,方式2,使用rm -f命令强制删除,如图2
如图1
如图2
3.4.9重要
3.4.9.1启动守护式容器(后台服务器)
注意点1:
问题:使用docker run -d centos发现容器自动退出了?如图
答案
:docker机制问题
3.4.9.2查看容器日志
3.4.9.3查看容器内运行的进程
注意点1:
问题:docker ps [OPTIONS] -> 列出当前所有正在运行的容器,而docker top 容器ID ->
查看容器内运行的进程,展示区别是啥?
答案
:展示的字段很不同,docker ps展示容器ID、镜像ID,而docker top展示进程ID、数据卷TTY等等。
3.4.9.4查看容器内部细节
注意点1:
打印输出,看到返回是个JSON串,里面包含命令、网络等等参数说明。
3.4.9.5进入正在运行的容器并以命令行交互
注意点1:
说明docker exec -it 容器ID bashShell
注意点2:
问题:attach进入和exec进入容器后,用exit退出后的情况区别?
答案
:
attach 直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止。
exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止。
3.4.9.6容器文件的上传和下载
注意点1:
容器文件的上传和下载
3.4.9.7导入和导出容器
注意点1:
案例验证如图:先把ubuntu镜像导出成abcd.jar -> 然后删除镜像 -> 再执行cat导入命令生成新镜像。
docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
注意点2:
docker export --> import --> 启动 时可能会报错“Error response from daemon: No command specified”,需要带command,可以在原来的容器所在主机上执行docker ps查看到,如果command比较复杂,还是使用docker save --> load --> 启动 的方式好了,这种方式启动就不必带command。
注意点3:
问题:docker save和docker export区别?
答案
:如图,详情请看博客:…%2522%257D&request_id=165941772816782425153541&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-78089138-null-null.142v38pc_rank_34&utm_term=docker%20save%E5%92%8Cexport%E5%8C%BA%E5%88%AB&spm=1018.2226.3001.4187
3.4.9.8查看docker版本信息和系统信息
3.4.9.9docker save命令
3.4.9.10docker build命令
3.4.9.11docker上传镜像
3.4.9.12docker修改标签版本号
3.4.9.13docker 将本地镜像上传到镜像仓库(要先登陆到镜像仓库)
3.4.9.14docker容器内删除文件
命令:rm -f xxx
3.4.9.15 docker commit命令提交容器副本使之成为一个新的镜像
公式:
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
命令:在容器外执行,记得
docker commit -m=“ifconfig cmd add” -a=“zzyy” a69d7c825c4f zzyyubuntu:1.2
3.5小总结
标签:容器,命令,3.4,镜像,docker,如图 From: https://blog.51cto.com/u_15896157/5896001