Docker入门(一)

简介: 上一节中,我们了解到了Docker 的一些基本知识点,它的一些核心概念,Docker的使用安装等。此篇文章我们对 Docker 进行入门讲解

Docker 基本指令

查看Docker基本信息

首先,我们会查看Docker 是否能够正常运行

使用 docker info 查看 Docker 程序是否存在,功能是否正常

42.jpg

上面我们使用了 docker info 指令,该命令会返回所有容器和镜像的数量、Docker 使用的执行驱动和存储驱动,以及Docker 的基本配置

Docker 是基于客户端-服务器架构的。它有一个 Docker 程序,既能作为客户端,又能作为服务端。作为客户端时,docker 程序向 Docker 守护进程发送请求,然后再对返回的请求结果进行处理。

运行容器

现在,我们尝试启动第一个容器,我们可以使用docker run方法创建容器,docker run 提供了容器的创建到启动的过程。docker run 的执行流程如下图所示:

44.jpg


现在我们开始运行一条指令docker run -i -t ubuntu /bin/bash,-i 标志保证容器中的 STDIN 时开启的,尽管我们并没有附着到容器中。持久的标准输入时交互式shell 的"半边天",-t 标志则是另外"半边天",它告诉 Docker 为要创建的容器分配一个 tty 终端。这样,docker 才能提供一个交互式的 shell 。示例中的 ubuntu 是一个常备镜像,也被称为基础镜像,它由Docker 公司提供并保存在 Docker Hub Registry 上。

随后,Docker 在文件系统内部利用这个镜像创建了一个新的容器。该容器拥有自己的网络、IP地址,以及一个用来和宿主机通信的桥接网络接口。最后,我们告诉 Docker 在新容器内要运行什么命令,我们在容器中运用 /bin/bash 创建了一个 Bash Shell。


使用容器

现在,我们已经切换到了新的容器中


45.jpg


容器ID 是@18178c34cd5a,这是一个完整的 ubuntu 系统,下面我们就来研究一下这个系统,你可以使用

hostname获取主机名

16.png

你会发现主机名和 root 后面的字符串一致,也就是说root 后面其实跟的是主机ID。

我们再来看看 /etc/hosts 文件,如下所示

46.jpg


还可以查看容器中运行的进程,ps -aux用于查询容器中的进行进程

47.jpg


接下来我们要干什么?安装一个软件包?安装一下 vim 软件吧,使用apt-get update && apt-get install vim 进行安装。通过上述命令,我们可以在Ubuntu宿主机上使用 vim 口令和语法了。

当你想退出时,直接使用 exit 就退回宿主机的命令行了。

那么这个容器怎么样了?容器现在已经停止运行,只有在制定的/bin/bash 处于运行状态时,容器才会处于运行状态。一旦退出,容器也就停止了运行。

但是容器还是存在的,你可以使用 docker ps -a查看系统中的容器列表

48.png


默认情况下,使用 docker ps 能够列出所有正在运行的容器列表,使用 docker ps -a 列出系统出所有的容器列表包括正在运行的和已经停止的。


容器命名

Docker 会为我们创建的每个容器自动生成一个随机的名称。例如我们上面创建的 /bin/bash 的名称,如果想要指定名称,通过 --name 标志实现,例如sudo docker --name cxuan_container -i -t ubuntu /bin/bash

上述命令会为你创建一个 cxuan_container 的ubuntu 镜像,你可以使用 docker ps -a 来查看最近的一个镜像。

容器的名称必须是唯一的,而且有效的名称能够帮助我们理清楚上下级关系,所以明明很重要!!!

            </div>
目录
相关文章
|
数据挖掘 程序员 数据安全/隐私保护
解锁PDF潜力:9个Python库让你的文档处理更高效
程序员晚枫分享了Python处理PDF的9个第三方库,包括PyPDF2、pdfrw、ReportLab、pikepdf、pdfplumber、pdfminer.six、PyMuPDF、popdf和borb,各具优缺点。选择时需考虑应用场景、功能需求、库的维护状态和开源协议。例如,pdfplumber擅长内容提取,而ReportLab和PyMuPDF适用于创建和修改内容。
2270 7
|
11月前
|
机器学习/深度学习 人工智能
Leffa:Meta AI 开源精确控制人物外观和姿势的图像生成框架,在生成穿着的同时保持人物特征
Leffa 是 Meta 开源的图像生成框架,通过引入流场学习在注意力机制中精确控制人物的外观和姿势。该框架不增加额外参数和推理成本,适用于多种扩散模型,展现了良好的模型无关性和泛化能力。
582 11
Leffa:Meta AI 开源精确控制人物外观和姿势的图像生成框架,在生成穿着的同时保持人物特征
|
人工智能 供应链 数据可视化
数字孪生:制造业的智能化转型
【10月更文挑战第31天】数字孪生技术利用虚拟现实、人工智能和云计算等技术,将实体对象数字化,实现精准、可靠的实时监测和数据分析,优化产品开发和生产过程。本文探讨了数字孪生在制造业中的应用,包括产品研发、生产过程管理和供应链协同,并分享了青岛工业互联网平台和中联重科塔机智能工厂的成功案例,展望了其未来的发展前景。
|
域名解析 JavaScript 网络协议
Vue框架中根据域名获取租户ID的方法
通过上述方法,Vue应用可以根据域名动态获取租户ID,进而实现根据不同租户展示定制化信息的多租户系统功能。这种技术不仅增加了应用的灵活性,也提升了用户体验。
334 2
|
机器学习/深度学习 移动开发 人工智能
Java医院3D人体智能导诊系统源码 Uniapp+springboot 微信小程序
智能导诊系统按照人体的性别差异,设计了男性/女性两种3D立体模型,用于病症库与自助导诊之间数据信息的读取与交互,在软件病症库中,将不同患者的常见病症进行分类整合,患者可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室,为患者提供直观就医指导,减少导诊台工作量。
313 3
|
Shell Android开发
Magisk模块:优化安卓碎片化2.0(循环版)fstrim-模块调用magisk自带的busybox.sh(重启生效)
Magisk模块:优化安卓碎片化2.0(循环版)fstrim-模块调用magisk自带的busybox.sh(重启生效)
1484 1
Magisk模块:优化安卓碎片化2.0(循环版)fstrim-模块调用magisk自带的busybox.sh(重启生效)
|
存储 Linux Python
ansible手动添加模块
ansible手动添加模块
247 0
|
SQL 存储 前端开发
Python后端技术栈(七)--web框架
Python后端技术栈(七)--web框架
|
缓存 负载均衡 架构师
阿里资深架构师钟华曰:中台战略思想与架构实战;含内部实施手册
最近在读一本书,叫做《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战》,在写此文时本书还没有看完,因为担心如果把书全部看完后再来写这篇文章,很多精彩的内容可能已经忘记了,所以中途先写一篇来分享给大家。
|
数据采集 存储 缓存
牛逼!“京东热” 框架 JD-hotkey 开源了...单机 QPS 可达 37 万!!
牛逼!“京东热” 框架 JD-hotkey 开源了...单机 QPS 可达 37 万!!
4589 0
牛逼!“京东热” 框架 JD-hotkey 开源了...单机 QPS 可达 37 万!!