分享好友 最新动态首页 最新动态分类 切换频道
Docker入门
2024-12-27 03:08

Docker 是一个开源的应用容器引擎Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。                        通俗点说:docker翻译过来为码头工人,docker提供的是一种容器化搬运东西(我们的软件、程序)的过程。

Docker入门

docker是运行在操作系统上一个程序软件,它会提供一个容器环境,使我们的程序独立地运行在容器中,可以隔离开发环境。虚拟机是我们在操作系统虚拟出来的文件,docker类似虚拟机,比虚拟机效率更高,都是可以被其他主机拿来直接使用的。

举个例子:当我们在主机上搭载服务器,需要配置环境,配置文件等。若要运行在多个不同的主机上,就需要多次配置。有了Docker我们就可以把配置好的环境,文件,打包成一package(docker镜像)。比如,在linux下EMQX部署,很多情况下直接下载emqx运行是跑不起来的,有了Docker,我们可以直接从官网拉取EMQX镜像,运行即可。这样就省去了我们去配置环境,修改文件这些繁琐的过程。Docker让应用程序不必再关心主机环境,各个应用安装在Docker镜像里,Docker引擎负责运行包裹了应用程序的docker镜像。

Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,可以大大减少编写代码和在生产环境中运行代码之间的延迟。

Build once,Run anywhere(一次搭建,到处运行

虚拟机的运作原理:是虚拟电脑的硬件资源,把硬件资源分配出来,然后虚拟出来多个操作系统,虚拟出来的是一个完整的电脑。

2.1.1集装箱

没有集装箱之前运输货物,东西零散容易丢失,有了集装箱之后货物不容易丢失,我们可以把货物想象成程序,目前我们要把程序部署到一台新的机器上,可能会启动不起来,比如少一些配置文件什么的或者少了什么数据,有了docker的集装箱可以保证我们的程序不管运行在哪不会缺东西.

2.1.2 标准化
1. 运输方式

docker运输东西有一个超级码头,任何地方需要货物都由鲸鱼先送到超级码头,然后再由鲸鱼从超级码头把货物送到目的地去.对应的技术来说,比如我们要把台式机的应用部署到笔记本上,我们可能选择用QQ发过去或者用U盘拷过去,docker就标准化了这个过程,我们只需在台式机上执行一个docker命令,把鲸鱼派过来,把程序送到超级码头去,再在笔记本上执行一个docker命令,然后由鲸鱼把程序从超级码头送到笔记本上去.

2. 存储方式

当我们把程序存储到主机上时,我们需要一个目录,且我们要记住这个目录,因为下次我们可能还要修改,有了docker之后我们就不用记住了程序在哪里了,我们使用的时候只需要一条命令就行了.

3. API接口

docker提供了一系列rest api的接口,包含了对docker也就是对我们的应用的一个启动停止查看删除等等,如当我们要启动tomcat时我们要执行startup命令,当我们要停止时要执行shutdown命令,如果不是tomcat,我们可能还需要一些别的命令.有了docker我们记docker的命令就可以对其进行操作.
2.1.3 隔离
我们在使用虚拟机时有自己的cpu,硬盘,内存,完全感觉不到外面主机的存在,docker也差不多,不过它更轻量,我们创建虚拟机可能要几分钟,但是docker只需要一秒.

2.2.1 镜像是什么

镜像(Mirroring)是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。就像是集装箱,鲸鱼拖着的集装箱就是镜像。通俗点,镜像就是一堆静态的模板,运行起来的镜像就是容器。

2.2.2 镜像文件系统

从本质上来说镜像就是一系列文件,可以包括我们应用程序的文件,也可以包括我们应用的运行环境的文件。linux的一个存储技术,叫做联合文件系统,是一种分层的文件系统,可以将不同的目录挂到同一个虚拟文件系统下.

下图就是镜像的存储格式,这张图是分层的,最下面一层,上面也是一层层的好像集装箱罗列在一起.这就是镜像最直观的存储方式.下面是操作系统的引导,上面是linux操作系统,再上面是一些相关的软件,再往上是应用代码。docker镜像系统的每一层都是只读的,然后把每一层加载完成之后这些文件都会被看成是同一个目录,相当于只有一个文件系统.docker的这种文件系统被称之为镜像.

Docker属于Linux容器的一种封装,提供简单易用的容器使用接口,它也是目前最流行的Linux容器解决方案。Docker 将软件代码和其依赖,全打包在一个文件中。运行单个文件,就会生成虚拟容器。在这个虚拟容器中,不管本地的操作系统是如何的不同,此容器都能照常运行。
 
简而言之,Docker的接口非常简单,可以帮助用户更好地创建和使用容器,让相同的代码在不同的环境上正常运行。容器器不是模拟一个完整的操作系统,而是对进程进行隔离。或者说,就是在正常进程的外面套用了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层程序的隔离。

 

镜像怎么在不同的主机上传输呢

这就用到了docker仓库,我们要先把我们的镜像传到docker仓库中,再由目的地把docker仓库拉过去,这就完成了这样的一次传输过程.

谁提供了这样的仓库呢?docker自己提供了,hub.docker.com,但是非常慢,为了解决这个问题,国内很多公司也在做自己的仓库.比较知名的是由网易蜂巢提供的 https://c.163yun.com/hub#/m/home/

1. 的卸载掉你系统中的 docker

 官网给的删除命令

 

ubuntu 完全干净的卸载docker

 

摘抄于 ubuntu 完全干净的卸载docker_张老鱼的博客-CSDN博客

2.安装详细步骤

摘抄于 Ubuntu 20.04 安装 docker 详解_s清风s的博客-CSDN博客_docker ubuntu20.04

2.1 安装依赖

 

2.2 添加 Docker 的官方 GPG 密钥

 

2.3 验证密钥

 

2.4 根据你不同的系统去设置一个稳定的仓库(根据你的系统选一个 安装

 

2.5  再更新一次 apt

 

2.6到目录中设置daemon.json文件(值得注意的是,如果是首次安装,理论上是不会有 cd /etc/docker 这个目录滴,所以如果你真的是第一次安装, 请跳过此步骤,等你下面步骤报错之后,嘿嘿这个目录就会有了,然后从头走一遍你就会发现,这部可以用了

 

2.7 安装最新的 docker

 

2.7.1一波顺利滴成功安装,下面的 hello-world 也是非常滴顺利敲出来,感觉一切良好

然而运行一波重启docker命令$ sudo systemctl restart docker 发现报了下面这该死滴错误

 

这错误出来后,就完了,重启系统之后docker再也没能启动,恭喜你!你还是没能逃脱2.6的命运,请从这里跳到安装步骤第一步,再来一次,记得要看2.6

2.7.2 执行安装步骤直接报错,错误提示

 

2.8运行 hello-world

 
 

容器生命周期管理

容器rootfs命令

镜像仓库

本地镜像管理

info|version

  • docker  run     运行镜像生成容器
  •  
  • start/stop/restartdocker start/stop/restart id(容器id)开启 关闭 重新开启某个容器
  • docker kill 容器id    删除容器
  • docker rm 容器id (可加参数: -f 强制删除 -l 移除容器间的网络连接,而非容器本身 -v 删除容器和与容器关联的卷
  • docker pause/unpause 容器id  停止启动容器
  • docker create  容器id 创建容器
  • 容器操作

  • docker ps 查看容器 可加-a查看所有容器
  • docker inspect
  • docker top
  • docker attach
  • docker events
  • docker logs 容器id  查看容器日志
  • docker wait
  • docker export
  • docker port
  • docker stats
  • docker commit -m "描述" 容器id 镜像名:版本号ocker commit 把容器打包成镜像
  • docker cp
  • docker diff
  • docker login
  • docker pull 镜像名 拉取镜像
  • docker push 地址:端口/文件:版本(推送制定镜像到docker镜像源服务器
  • docker search 镜像名  搜索镜像
  • docker images 查看自己服务器中docker 镜像列表

  • docker image save 镜像名>**.tar(把镜像打包成tar)或者docker save -o **.tar 镜像名:版本
  • rmi
  •  
      

  • docker tag 源文件 目标文件名:版本  给镜像打标签
  • build 
  • history 镜像id  显示镜像历史
  • docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
最新文章
网站运营做seo/保定seo推广外包
  在有条件有能力的情况下,可以考的证书还是比较多的,也没有必要全部都考,主要看自己需要,符合需求。 那先了解一下PMP: PMP®的全称是Project Management Professional(项目管理专业人士资格认
武汉范湖万达CBD在线中学生编程培训班
课程单价:240元课时数:80节全部校区:童程童美少儿编程(河西万达中心)课程内容:课程分为3个单元,每个单元都会带领学生用AI工具从0到1完整的开发一个项目。课程特色这个阶段的学习,孩子们将收获35个AI体感游戏开发的知识点、50个程序
刺激的最多人玩的手游排行榜 2023耐玩的多人游戏top5
现在问世了不少多人玩的游戏,在多人游戏中玩家可以随便交友,跟队友一起完成一些困难任务,那么刺激的最多人玩的手游排行榜情况怎么样?现在的联机多人游戏吸引了不少玩家,市面上的多人游戏多不胜数,小编为大家挑选了五个优质的联机类游
百度推广优化攻略,揭秘提升企业品牌影响力的核心策略
百度推广优化的关键在于精准定位、内容优化、数据分析与策略调整。通过优化关键词、提升广告质量、利用数据驱动决策,企业能更有效地触达目标受众,增强品牌曝光度和用户互动,从而显著提升品牌影响力和市场竞争力。随着互联网的快速发展,
血压高和喝酒关系大吗
血压高的患者可以适量喝红酒,但不建议过多饮用。红酒中含有的多酚类物质有助于增强一氧化氮的释放,而一氧化氮能够松弛平滑肌细胞,从而使外周血管扩张,达到一定的降压效果。但是需要注意的是,虽然红酒中的这些成分有一定的好处,但并不
语音助手与chatgpt
语音助手与ChatGPT:为人机交互带来全新体验随着人工智能技术的快速发展,语音助手和自然语言处理技术成为了人机交互领域的热门研究方向。语音助手被广泛应用于智能音箱、智能手机等设备中,通过语音指令实现信息检索、语音识别、语音合成
谷歌每年260亿美元买断搜索入口,法院判为垄断行为,可能重塑互联网市场
以“不做恶”为座右铭的谷歌,终于被判定为在市场上采取了“做恶”的行为。美国联邦法官做出裁决,谷歌非法垄断了搜索市场。根据法院判决,谷歌的行为,违反了反垄断的谢尔曼法的第二条,即在美国市场上通过排他性的分销协议,建立起了一般
驻马店2020高考查分网站入口
河南省2020年高考成绩查询时间7月25日0时   河南省2020年高招各批次最低录取控制分数线7月25日0时公布,考生即可通过多种方式查询高考成绩,全省考生“一分一段表”也将同时发布。  高考查分渠道有:河南省教育厅网站、河南省招生办公
高清美女写真生成!用AI一键打造你的虚拟女友!
第二步:选择生成类型 进入页面后,你将看到多个选项,选择“生成美女写真”,系统会引导你进入相应的界面。第三步:上传或选择图片 你可以选择上传自己的照片,或者系统提供的样板图,随后根据指引进行基础设置,如选择风格或特效等。第四
为什么AI目前搞不定UI界面设计?
在人工智能(AI)技术飞速发展的今天,其在各个领域的应用不断拓展,从自动驾驶到智能助手,AI的身影无处不在。然而,在UI界面设计这一领域,尽管AI技术被寄予厚望,但其实际应用效果却远
相关文章
推荐文章
发表评论
0评