《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结

简介: 《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结

image.png

@[toc]

3.Docker常用命令

image.png

一句话:镜像时模板,而容器才是真真正正干活的实例对象或实例容器 -> 由镜像生成容器实例。

3.1帮助启动类命令

image.png

3.2镜像命令

image.png

注意点1:
列出本地主机上的镜像
image.png

注意点2:
docker search 某个XXX镜像名字
image.png

注意点3:
docker pull 某个XXX镜像名字
image.png

注意点4:
docker system df 查看镜像/容器/数据卷所占的空间
image.png

注意点5:

问题:面试题:谈谈docker虚悬镜像是什么?

答案:仓库名、标签都是的镜像,俗称虚悬镜像dangling image,建议把虚悬镜像删除,不然docker打包编译部署可能会发生问题。
image.png

注意点6:
docker rmi -f 镜像ID
其中 -f:用于强制删除
如果不写-f,那么如果改容器服务正在运行,那么无法删除,报错如图1,而输入-f,则会执行强制删除。
image.png

3.3有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)

image.png

注意点1:

问题:为啥案例使用ubuntu而不是使用centos?

答案:因为centos太大了,ubuntu很小,方便案例使用。

3.4容器命令

image.png
image.png

3.4.1新建+启动容器

image.png

注意点1:

  • 新建+启动容器: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 其中OPTIONS说明
    image.png

  • 启动交互式容器(前台命令行)
    image.png

注意点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服务对应的端口
image.png

如图1

image.png

如图2

注意点4:
执行命令docker run -it redis发现也可以运行, 答案时后面不带bash或者/bin/bash,那么默认也会自带脚本运行。

3.4.2列出当前所有正在运行的容器

image.png

注意点1:
列出当前所有正在运行的容器: docker ps [OPTIONS] 其中OPTIONS说明
image.png

注意点2:
如图1,CONTAINER ID指代容器ID,这里尾号adbb就对应如图2中的容器ID,另外NAME指代容器名字,如果未设置名字,那么系统自动随机分配一个名字,这里的pebsive_swanson就是系统自动随机分配的一个名字。如果如图3中启动服务时设置名字,那么如图1中NAME属性就会显示myu1的名字。
image.png

如图1

image.png

如图2

image.png

如图3

3.4.3退出容器

image.png

3.4.4启动已停止运行的容器

image.png

3.4.5重启容器

image.png

3.4.6停止容器

image.png

3.4.7强制停止容器

image.png

3.4.8删除已停止的容器

image.png

注意点1:
docker rm -> 删除容器
docker rmi -> 删除镜像

注意点2:

问题:如何删除正在运行的容器?

答案:有2种方式,方式1,先停止再删除,如图1,方式2,使用rm -f命令强制删除,如图2
image.png

如图1

image.png

如图2

3.4.9重要

image.png

3.4.9.1启动守护式容器(后台服务器)

image.png

注意点1:

问题:使用docker run -d centos发现容器自动退出了?如图

image.png

答案:docker机制问题
image.png

3.4.9.2查看容器日志

image.png

3.4.9.3查看容器内运行的进程

image.png

注意点1:

问题:docker ps [OPTIONS] -> 列出当前所有正在运行的容器,而docker top 容器ID ->
查看容器内运行的进程,展示区别是啥?

答案:展示的字段很不同,docker ps展示容器ID、镜像ID,而docker top展示进程ID、数据卷TTY等等。
image.png
image.png
image.png

3.4.9.4查看容器内部细节

image.png

注意点1:
打印输出,看到返回是个JSON串,里面包含命令、网络等等参数说明。
image.png

3.4.9.5进入正在运行的容器并以命令行交互

image.png

注意点1:
说明docker exec -it 容器ID bashShell
image.png

注意点2:

问题:attach进入和exec进入容器后,用exit退出后的情况区别?

答案

attach 直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止。

image.png

exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止。

image.png

3.4.9.6容器文件的上传和下载

image.png

注意点1:
容器文件的上传和下载
image.png

3.4.9.7导入和导出容器

image.png

注意点1:
案例验证如图:先把ubuntu镜像导出成abcd.jar -> 然后删除镜像 -> 再执行cat导入命令生成新镜像。
docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
image.png
image.png

注意点2:
docker export --> import --> 启动 时可能会报错“Error response from daemon: No command specified”,需要带command,可以在原来的容器所在主机上执行docker ps查看到,如果command比较复杂,还是使用docker save --> load --> 启动 的方式好了,这种方式启动就不必带command。

注意点3:

问题:docker save和docker export区别?

答案:如图,详情请看博客:
https://blog.csdn.net/liukuan73/article/details/78089138?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165941772816782425153541%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165941772816782425153541&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-78089138-null-null.142^v38^pc_rank_34&utm_term=docker%20save%E5%92%8Cexport%E5%8C%BA%E5%88%AB&spm=1018.2226.3001.4187

image.png

3.4.9.8查看docker版本信息和系统信息

image.png

3.4.9.9docker save命令

image.png

3.4.9.10docker build命令

image.png

3.4.9.11docker上传镜像

image.png

3.4.9.12docker修改标签版本号

image.png

3.4.9.13docker 将本地镜像上传到镜像仓库(要先登陆到镜像仓库)

image.png

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小总结

image.png
image.png
image.png

本人其他相关文章链接

1.《docker基础篇:1.Docker简介》包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
2.《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
3.《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
4.《docker基础篇:4.Docker镜像》包括是什么、分层的镜像、UnionFS(联合文件系统)、docker镜像的加载原理、为什么docker镜像要采用这种分层结构呢、docker镜像commit
5.《docker基础篇:5.本地镜像发布到阿里云》
6.《docker基础篇:6.本地镜像发布到私有库》包括本地镜像发布到私有库流程、docker regisry是什么、将本地镜像推送到私有库
7.《docker基础篇:7.Docker容器数据卷》包括坑、回顾下上一讲的知识点,参数V、是什么、更干嘛、数据卷案例
8.《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
image.png

重要信息

image.png
image.png

目录
相关文章
|
11月前
|
Ubuntu 安全 Linux
CentOS与Ubuntu的深度对比与分析
Ubuntu更新频繁、文档丰富,适用于云服务与容器部署。 与CentOS的比较,Ubuntu基于Debian,而CentOS则源自RHEL。在软件包格式上,Ubuntu采用.deb和.snap,而CentOS则使用.rpm和flatpak。更新方面,Ubuntu使用apt,而CentOS则依赖yum。尽管CentOS以稳定性见长,不常对包进行更新,但这并不意味着Ubuntu在安全性上逊色。事实上,Ubuntu提供了更为丰富的文档和免费的技术支持。此外,Ubuntu的服务器版本在云服务和容器部署方面拥有更多的优势。
|
9月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
915 6
|
11月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
651 16
|
11月前
|
Ubuntu 网络安全 PHP
如何使用vscode的Docker插件管理ubuntu 拉取服务器的镜像以及创建容器
本测试镜像旨在记录使用vscode的Docker插件拉取病创建Dockerfile,以及拉取镜像。
|
11月前
|
Ubuntu 安全 Unix
CentOS 与 Ubuntu 谁与争锋
不论你的选择如何,是 Ubuntu 还是 CentOS,两者都是非常优秀稳定的发行版。如果你想要一个发布周期更短的版本,那么就选 Ubuntu;如果你想要一个不经常变更包的版本,那么就选 CentOS。在下方留下的评论,说出你更钟爱哪一个吧!
|
11月前
|
Ubuntu 安全 小程序
服务器版本的CentOS和Ubuntu哪个更适合你?
但是以上的比较并不说明Ubuntu是不稳定的或者是不安全的,只是以上比较过程中,在稳定性方面Ubuntu稍微逊色了一点。由于Ubuntu在个人桌面电脑的使用率远远高于CentOS,用Ubuntu搭建服务器,如果遇到什么问题,寻找解决方案相对比较容易,这让Ubuntu在选择方面更优于CentOS。如果你是一个初学者,那么毫无疑问Ubuntu是更适合的选择。如果你正在经营自己的公司,在这两者之间,CentOS会更好一些。
|
11月前
|
Ubuntu 安全 Linux
centos和ubuntu有什么区别
总的来说,CentOS 更适合用于服务器和企业级应用,因为它稳定、可靠、安全,并且提供长期支持。而 Ubuntu 则更适合用于桌面应用程序和开发环境,因为它更加注重用户体验和新技术支持。
|
11月前
|
Ubuntu Linux 图形学
centos和ubuntu有什么区别
总之,CentOS和Ubuntu都是常见的Linux操作系统发行版,它们都是免费的、开源的操作系统。它们在更新周期、软件包管理器、默认桌面环境、用户接口和社区支持等方面存在一些不同。因此,选择哪种操作系统取决于用户的需求和偏好,以及特定的使用场景。 如果有任何疑问可以随时评论留言或私信我,欢迎关注我[点击关注],共同探讨。
|
11月前
|
Ubuntu 安全 Linux
CentOS和Ubuntu区别
好的选择。 Ubuntu有一个很大的社区平台,可以提供丰富的文档和经验。 Ubuntu服务器的图形界面适合大多数人的习惯。 因此,如果是初学者且没有特别的要求,就使用Ubuntu服务器吧。 CentOS适用于公司的生产环境,Centos的更新频率不高,仅发布稳定的版本。 网上项目教程大多基于Centos。 Ubuntu面向初学者,CentOS面向公司服务器。
|
11月前
|
Ubuntu 安全 数据挖掘
揭开Linux系统神秘面纱,选择Centos、Debian、Ubuntu?
CentOS、Debian 和 Ubuntu 三种 Linux 操作系统各具优势和适用场景。CentOS 更适合用于服务器应用,Debian 更适合稳定需求的系统环境,而 Ubuntu 更适合用于桌面操作系统和开发环境等。CentOS 和 Debian 相对保守,重视稳定性和安全性;Ubuntu 侧重更新和更好的可用性,重视用户体验。此外, Ubuntu 在市场上的占有率最高。因此,选择适合自己需求的操作系统非常重要,可以帮助用户提高效率和使用体验。