docker 快速上手自记

简介: Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。本人博客 从csdn搬运

什么是Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

所以能干什么

​ 前面说的那段是随手百度到的,看了一般也不懂,那么我能用它干什么?

​ 我来从一个问题入手吧,如果你经常学习新东西,尤其是IT相关的东西,那么你一定会隔三差五装环境,如果你搞开发,可能也对装环境深恶痛绝,那如果你再隔三差五换个电脑,好家伙,头已经在大了。那如果你的项目需要多人协作,环境如果不严格统一,那问题就更多了,而且比之前说的更加麻烦,因为这个不能随意解决。

​ docker就是为了解决开发者和程序运行,维护人员之间的环境不一致,不统一,而应运而生的。

和虚拟机有区别吗?

​ 有,并且很大,最直观的是:虚拟机运行启动是分钟量级的,而docker环境启动是s量级的。

​ 不怎么直接点的说,虚拟机是模拟的整个环境,然后再环境中进行搭建。docker做的可能没有那么彻底,下面是书里的一些解释,比较实际。

  • docker是面向应用的,虚拟机是面向操作系统的。

    • Docker容器和其他容器共享一个操作系统相反每个虚拟机都有一个由hypervisor管理的他们自己的操作系统
  • Docker被设计成只运行一个主要进程而不是管理多组进程

​ 就我个人来讲,区别还是蛮大的,因为也是刚上手,所以不好多说防止误解,贴一段网上看到的,觉得说的很好。

​ 虚拟机为进程提供高度隔离,因为它们在自己的操作系统实例中运行。该操作系统也不必与主机上运行的操作系统相同。Windows虚拟机可以在Linux管理程序上运行,反之亦然。

​ 相反,容器使用主机操作系统资源的受控部分; 许多应用程序以高度管理的方式共享相同的操作系统内核。因此,容器化应用程序不像虚拟机那样完全隔离,但它们为绝大多数工作负载提供了足够的隔离。

快速上手

​ win下快速上手就是去官网下载一个win版本的docker

​ 之前说过docker 是面向应用的,所以我个人的理解,你一开始最好把docker搭建出来得环境当做你使用的一个中间工具,而不是一个开发的目标,否则你的操作可能会比较麻烦。

​ 比如,使用别人开发好的镜像,作为自己的服务器,编译某些文件的环境,当你试图要去更新,迭代docker ,那是和快速上手没什么关系的事情,如果我之后有需要,可能会整理下。

下载镜像

​ 去百度搜索docker hub,进去注册一个账号,下载别人的镜像,安装。

​ 注册登录之后搜索你要得环境,找一个点赞比较多的,看它的描述文件,如果和你的要求差别不是很大

​ 复制他的指令,像是这样的:

docker pull mysql

​ 在win+R cmd的命令控制台输入这个指令,会开始下载这个东西

下载结束之后可以打开可视化界面,看到镜像已经下载过来了,我这个是其他镜像

在这里插入图片描述

运行镜像

原理并不清楚,但是我推荐你使用这样一条指令去挂载

docker run -i -t -v /d/Project/caffeFile:/mnt --name data bvlc/caffe:gpu /bin/bash

docker: 不解释了,是命令主语句

run :创建并运行容器

-i:以交互模式运行容器

-t: 为容器重新分配一个伪输入终端

-v:绑定一个卷(推荐原因)

/d/Project/caffeFile:/mnt:本地地址:绑定到容器中的地址

--name data:名字 data

bvlc/caffe:gpu:镜像名

/bin/bash:启动指令

以上都可以搜索Docker run 命令搜到,我说下为什么推荐这个。因为我的使用不是搭建服务器或者其他,所以还有一个更常用的指令是端口映射-p 主机端口:容器端口,我没有用。我需要它作为一个环境帮我编译和执行一段代码,所以需要频繁的文件交互,这样的话绑定一个卷过来是极其方便的。d

常用指令

docker ps

显示所有正在运行镜像

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
92e34722f130 bvlc/caffe:cpu "/bin/bash" 2 days ago Up 25 minutes data1

docker attach 92e34722f130

进入镜像

cp -r 路径/源文件:目标文件夹

将源文件复制到目标文件夹

其他

个人不建议使用UI进入的命令行,感觉不好用

另外容器删了重新创建,所有修改都会消失

只是停止的话重新开启,修改不会消失

一个卷可以给多个容器挂载

容器不删除,挂载不消失

目录
相关文章
|
2月前
|
数据采集 人工智能 自然语言处理
自动化比价系统:从采集到数据清洗,全链路打通教程
本文详解淘宝/京东/拼多多三平台自动化比价系统全链路:用OpenClaw自然语言采集、站大爷隧道代理防封(24小时成功率98.2%+)、AI智能清洗价格(统一格式、核销优惠、去重校验),自动生成可决策的比价报告与飞书预警,真正实现“采得稳、洗得准、用得上”。
267 1
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
微调与推理:解锁大模型定制化能力的核心密钥
本文深入浅出讲解大模型微调与推理的核心原理与实践:微调(如LoRA)让通用模型适配垂直场景,推理则实现价值落地。以LLaMA为例,手把手演示数据准备、平台微调、在线测试与效果评估,零代码门槛,助初学者快速打造专属AI模型。(239字)
|
人工智能 监控 机器人
从会说话到能落地:「AI外呼」为什么需要端到端一站式解决方案?
智能外呼不止是“让AI说话”,而是融合通信资源、大模型对话、实时运营与合规风控的端到端解决方案。阿里云智能联络中心2.0提供通信智能引擎(PaaS)与通信智能体(MaaS)双模式,支持号码、线路、AI、多触点协同及多智能体动态优化,真正实现“越打越聪明”的一站式解决方案。
375 0
|
3月前
|
安全 API 数据库
用办公Agent自动处理员工入职/离职:账号开通、权限回收、文档交接
本文揭秘HRBP小雅如何告别重复劳动:曾耗时40分钟/人入职、60分钟/人离职,年均百小时“开关账号”。引入办公Agent后,仅需飞书发送一句指令(如“李明入职,研发部后端”),即可全自动完成跨7大系统权限配置与回收,并支持断点续传、失败重试、冷静期、撤销离职等安全机制。让HR回归人才战略本源。(239字)
385 0
|
JSON 监控 API
京东商品详情API秘籍!轻松获取商品详情数据
京东商品详情API提供商品SPU/SKU的完整信息,涵盖基础属性、价格、库存及促销等120+字段,支持HTTPS协议与JSON格式,适用于电商多场景。
|
8月前
|
安全 前端开发 芯片
USB过压保护芯片,切断输入和输出,防护后端电路,带自恢复
USB过压保护芯片,切断输入和输出,防护后端电路,带自恢复
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
大模型专业名词解释手册
本文系统介绍了大语言模型(LLM)的核心概念、训练方法、优化技术、应用模式及伦理问题,涵盖Transformer架构、注意力机制、预训练与微调、提示工程、模型压缩、安全对齐等关键技术术语,全面解析大模型的工作原理与发展挑战,助力深入理解生成式AI的技术脉络与未来方向。
916 0
|
11月前
|
人工智能 运维 专有云
持续领先!阿里云入选2025年Gartner®分布式混合基础设施魔力象限
近日,Gartner发布2025年《分布式混合基础设施魔力象限》报告,在混合云场景下,阿里云凭借飞天企业版(Apsara Stack)、边缘云ENS和云盒CloudBox产品组合能力,在“执行能力”和“愿景完整性”两大维度分别处于亚太厂商中最高最远的位置。
828 6
|
消息中间件 JavaScript 安全
HarmonyOSNext性能核弹:用Node-API引爆ArkTS/C++跨语言
本文介绍HarmonyOS Next中通过Node-API实现ArkTS与C++的跨语言交互,适合教育科普学习。内容涵盖三步核心流程:C++模块注册(开店准备)、接口映射(设计菜单)及ArkTS调用(点外卖)。重点包括SO库命名规则、线程安全规范及实战示例(如两数相加)。附带血泪经验总结,助你掌握丝滑跨语言调用技巧。
|
安全 Java 数据库连接
【Java每日一题】——第三十四题:设计一个学生类Student和它的一个子类Undergraduate
【Java每日一题】——第三十四题:设计一个学生类Student和它的一个子类Undergraduate