docker的学习(一):docker的基本概念和命令

简介

docker的学习,基本概念,以及镜像命令和容器命令的使用

docker

docker的基本概念

一次镜像,处处运行。
在部署程序的过程中,往往是很繁琐的,要保证运行的环境,软件的版本,配置文件,第三方依赖等等都要一致,docker就是解决系统的平滑移植,方便做持续集成和整体发布的容器虚拟化技术。
它是通过将程序和程序所需的系统环境都打包来达到跨平台的无缝运作的。

虚拟机和容器对比

虚拟机

虚拟机就是一种带环境安装解决方案,它在原来的操作系统上虚拟出各种硬件,然后在这些硬件的基础上安装别的操作系统,在另一种操作系统上安装部署各种软件。
缺点:

  • 占用资源多
  • 冗余步骤多
  • 启动慢
docker

docker容器是在操作系统上实现虚拟化,不需要模拟一个完整的操作系统,而是对进程进行隔离,只需要软件工作所需的库资源和设置。直接使用本地的操作系统,容器内没有自己的内核,也没有硬件的虚拟。每个容器之间相互隔离的,每个容器都有自己的文件系统,也即容器之间的进程不会相互影响。
优点:

  • 启动速度快
  • 占用体积小

docker的作用

  • 更快速的应用交付和部署
  • 更便捷的升级和扩缩容
  • 更简单的系统运维
  • 更高效的计算资源利用

docker的基本组成

  • 镜像
  • 容器
  • 仓库
镜像

docker镜像是一个只读的模版,可以用来创建docker容器,并且可以创建多个,相当于Java中的类模版

容器

独立运行的一个或一组应用,应用运行在容器中,即容器包含类似于一个虚拟化的运行环境和它里面运行的应用。每个容器都是相互隔离的,保证安全的。它可以被启动,开始,停止,删除。相当于Java中的类对象。

仓库

集中存放镜像文件的地方。分为公开仓库和私有仓库。

docker工作架构

docker是一个client-server结构系统,主要工作的就是docker守护进程,运行在server端,通过socket接收client端的命令管理运行在server端的容器。

docker hello world

启动docker:systemctl start docker
可以使用 ps -ef | grep docker 查看docker是否启动成功
运行:docker run hello-world,如果没有hello-world,docker会去仓库下载镜像然后运行。
在这里插入图片描述

docker常用命令

帮助启动类命令:
  • systemctl start docker:启动docker
  • systemctl stop docker:停止docker
  • systemctl restart docker:重启docker
  • systemctl status docker:docker的状态
  • systemctl enable docker:每次linux开机都启动docker
  • docker info :docker的概要信息
  • docker (具体命令) --help:命令的帮助文档
镜像命令
docker images

docker images:列出本地主机上的镜像
在这里插入图片描述
解析

  • repository:镜像源
  • tag:镜像的版本号
  • image id:镜像的id
  • created:镜像的创建时间
  • size:镜像的大小
docker search

docker search -- limit 3 redis:查找排名前三的redis镜像
在这里插入图片描述

解析:

  • name:镜像的名称
  • description:镜像的说明
  • starts:镜像的点赞数
  • official:是否是官方的
  • automated:是否是自动构建的
docker pull

docker pull redis:拉取redis的镜像,可以加上版本号拉取指定版本,不加是拉取最新版的。
在这里插入图片描述

docker system df

docker system df:查看镜像、容器、数据卷,构建缓存所占空间
在这里插入图片描述

docker rmi

docker rmi -f 镜像名字/id:强制删除镜像,可以用名字和id指定

docker rmi -f hello-world

在这里插入图片描述
docker rmi -f a b c:可以同时删除多个镜像
docker rmi -f $(docker images -qa):删除全部的镜像

容器命令
docker run

docker run 参数 镜像名:启动容器
参数:

  • - - name指定容器名字
  • -d:后台运行容器
  • -i:以交互模式运行容器
  • -t:为容器重新分配一个伪输入终端
  • -P:随机端口映射
  • -p:指定端口映射
docker ps

docker ps:显示所有正在运行的容器
参数:

  • -a:当前正在运行的和历史上运行过的
  • -l:最近创建的容器
  • -n:加数字可以显示个数
  • -q:只显示容器编号
退出容器

方式一:exit,退出容器会停止
方式二:ctrl+p+q,退出但容器不停止

docker start

docker start 容器id或容器名:启动已经停止的容器

docker restart

docker restart 容器id或容器名:重新启动容器

docker stop

docker stop 容器id或容器名:停止容器

docker kill

docker kill 容器id或容器名:强制停止容器

docker rm

docker rm 容器id:删除已经停止的容器

启动守护式容器

docker run -d 容器名:启动容器的后台运行模式
后台运行模式必须要有一个进程,不然会自动退出
docker run -d redis,后台运行模式启动redis容器。
在这里插入图片描述

启动交互式容器

docker run -it 容器名/容器id:启动交互式的容器,也即有个等待输入的终端交互,
在这里插入图片描述

docker logs

docker logs 容器id:查看容器的日志
在这里插入图片描述

docker top

docker top 容器id:查看容器运行的进程
在这里插入图片描述

docker inspect

docker inspect 容器id:查看容器内部细节
在这里插入图片描述

docker exec

docker exec -it 容器id /bin/bash:重新进入容器(后台运行模式的容器)

 docker exec -it f1df1159515f /bin/bash

进入到了redis容器里面
在这里插入图片描述
可以进行redis操作了
在这里插入图片描述

docker attach

docker attach 容器id:也是进入docker容器
和exec的区别是:
attach是直接进入容器启动命令的终端,不会启动新的进程,使用exit退出的时候,会导致容器停止。
exec是在容器中打开新的终端,并且可以启动新的进程,使用exit退出的时候不会导致容器停止
一般来说,还是使用exec比较多的。

docker cp

docker cp 容器id:容器内路径 主机路径:可以把容器中的文件复制到主机中,这样子就不用担心容器删了,里面的内容也不见了。

容器的导入导出

docker cp只是把一个文件导出到主机中
docker export 容器id>文件名.tar :可以把容器的内容导出作为一个tar归档文件,相当于把整个容器都备份了。

cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号:可以根据这个文件名.tar创建一个新的镜像,运行这个镜像得到的容器就是之前导出的容器,里面的内容都是有的。镜像用户/镜像名:镜像版本号是自己取的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/47939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装 Maven

安装 Maven 的步骤: 1. 访问 Maven 官方网站: https://maven.apache.org/download.cgi 2. 下载 Maven 的二进制文件 3. 解压下载的文件到希望安装的目录 4. 将 Maven 的 bin 目录添加到您的系统环境变量 PATH 中(配置环境变量) 这个步骤可…

Jupyter notebook如何快速的插入一张图片?如何控制插入图片的缩放、靠左展示(ChatGPT)

在Jupyter Notebook中,你可以使用Markdown语法快速插入图片,并且可以通过HTML标签来控制图片的展示方式和缩放。 注意:以下所有操作都有一个前提,即选择Cell-CellType-Markdown 1. 快速插入图片 要在Jupyter Notebook中插入图…

澎湃算力 玩转AI 华为昇腾AI开发板——香橙派OriengePi AiPro边缘计算案例评测

澎湃算力 玩转AI 华为昇腾AI开发板 香橙派OriengePi AiPro 边缘计算案例评测 人工智能(AI)技术正以前所未有的速度改变着我们的生活、工作乃至整个社会的面貌。作为推动这一变革的关键力量,边缘计算与AI技术的深度融合正成为行业发展的新趋势…

Redis持久化(AOF和RDB)

目录 前言 一.RDB 1.1手动执行 1.2自动执行 二.AOF 2.1重写机制 三.混合持久化 Redis的学习专栏:http://t.csdnimg.cn/a8cvV 前言 持久化,在之前,我们接触这个词汇是在mysql数据库当中的事务四大特性里。 持久性:指一旦事…

Linux网络编程之UDP

文章目录 Linux网络编程之UDP1、端口号2、端口号和进程ID的区别3、重新认识网络通讯过程4、UDP协议的简单认识5、网络字节序6、socket编程接口6.1、socket常见接口6.2、sockaddr通用地址结构 7、简单的UDP网络程序7.1、服务器响应程序7.2、服务器执行命令行7.3、服务器英语单词…

vue学习笔记(十)——Vuex(状态管理,组件间共享数据)

1. vuex基础-介绍 1.1 为什么会有Vuex ? 在现代 Web 开发复杂多变的需求驱动之下,组件化开发已然成为了事实上的标准。然而大多数场景下的组件都并不是独立存在的,而是相互协作共同构成了一个复杂的业务功能。 组件间的通信成为了必不可少的开发需求。…

《Linux运维总结:基于ARM64架构CPU使用docker-compose一键离线部署单机版tendis2.4.2》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:《Linux运维篇:Linux系统运维指南》 一、部署背景 由于业务系统的特殊性,我们需要面对不同的客户部署业务系统&#xff0…

数学建模——快递包裹装箱优化问题(2023年长三角数学建模A题问题一、问题二)

快递包裹装箱优化问题 2022 年,中国一年的包 裹已经超过1000 亿件,占据了全球快递事务量的一半以上。近几年,中国每年新增包裹数量相当于美国整个国家一年的包裹数量,十年前中国还是物流成本最昂贵的国家,当前中国已经…

【IC前端虚拟项目】sanity_case的编写与通包测试

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 在花了大力气完成reference model之后,整个验证环境的搭建就完成了,再多看一下这个结构然后就可以进行sanity_case和通包测试: 关于sanity_case和通包测试我在很多篇文章中说过好多次了在这里就不赘述…

el-menu弹出菜单样式不生效

1. 使用 ruoyi 项目时出现的问题。 <template><el-menu:default-active"activeMenu":collapse"false":unique-opened"true"class"container":collapse-transition"true"mode"horizontal"><sideba…

华为od 100问 持续分享6-入职体检

我是一名软件开发培训机构老师&#xff0c;我的学生已经有上百人通过了华为OD机试&#xff0c;学生们每次考完试&#xff0c;会把题目拿出来一起交流分享。 重要&#xff1a;2024年5月份开始&#xff0c;考的都是OD统一考试&#xff08;D卷&#xff09;&#xff0c;题库已经整…

Linux驱动开发-05APP和驱动的交互方式

一、传输数据 APP和驱动: copy_to_usercopy_from_user驱动和硬件: 各个子系统的函数通过ioremap映射寄存器地址后,直接访问寄存器二、APP使用驱动的四种方式 驱动程序:提供能力,不提供策略 非阻塞(查询)(应用程序访问底层驱动时(read、write时),驱动没有数据不等待,…

基于 CNN(二维卷积Conv2D)+LSTM 实现股票多变量时间序列预测(PyTorch版)

前言 系列专栏:【深度学习&#xff1a;算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域&#xff0c;讨论了各种复杂的深度神经网络思想&#xff0c;如卷积神经网络、循环神经网络、生成对…

单机、集群、分布式服务器比较:

1. 单机服务器的瓶颈&#xff1a; 单机服务器&#xff1a;一台服务器独立运行一个工程所需的全部的业务模块 受限于服务器硬件资源&#xff0c;所承受用户并发量受限&#xff0c;32位linux操作系统最大并发量为两万任一模块的变动和修改&#xff0c;都会导致整个项目代码重新编…

PHP上门按摩专业版防东郊到家系统源码小程序

&#x1f486;‍♀️【尊享级体验】上门按摩专业版&#xff0c;告别东郊到家&#xff0c;解锁全新放松秘籍&#xff01;&#x1f3e0;✨ &#x1f525;【开篇安利&#xff0c;告别传统束缚】&#x1f525; 亲们&#xff0c;是不是厌倦了忙碌生活中的疲惫感&#xff1f;想要享…

从微软发iPhone,聊聊企业设备管理

今天讲个上周的旧闻&#xff0c;微软给员工免费发iPhone。其实上周就有很多朋友私信问我&#xff0c;在知乎上邀请我回答相关话题&#xff0c;今天就抽点时间和大家一起聊聊这事。我不想讨论太多新闻本身&#xff0c;而是更想聊聊事件的主要原因——微软企业设备管理&#xff0…

利用AI与数据分析优化招聘决策

一、引言 在竞争激烈的职场环境中&#xff0c;招聘是组织获取人才、实现战略目标的关键环节。然而&#xff0c;传统的招聘方式往往依赖人力资源部门的主观经验和直觉&#xff0c;难以准确预测招聘效果&#xff0c;评估招聘渠道的效率。随着人工智能&#xff08;AI&#xff09;…

CSPVD 智慧工地安全帽安全背心检测开发包

CSPVD SDK适用于为各种智慧工地应用增加安全防护穿戴合规的检测能力&#xff0c;能够有效检测未戴安全帽和未穿 安全背心的人员&#xff0c;提供Web API和原生API。官方下载&#xff1a;CSPVD工地安全防护检测 1、目录组织 CSPVD开发包的目录组织说明如下&#xff1a; xlpr_…

linux进程——状态——linux与一般操作系统的状态

前言&#xff1a;博主在之前的文章已经讲解了PCB里面的pid——主要讲解了父子进程PID&#xff0c; 以及fork的相关内容。 本节进入PCB的下一个成员——状态&#xff0c; 状态是用来表示一个进程在内存中的状态的&#xff0c; 进程在内存中肯能处于各种状态&#xff0c; 比如运行…

云原生系列 - Jenkins

Jenkins Jenkins&#xff0c;原名 Hudson&#xff0c;2011 年改为现在的名字。它是一个开源的实现持续集成的软件工具。 官方网站&#xff08;英文&#xff09;&#xff1a;https://www.jenkins.io/ 官方网站&#xff08;中文&#xff09;&#xff1a;https://www.jenkins.io…