分享好友 最新动态首页 最新动态分类 切换频道
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
鹤岗网站排名优化策略与实践,包括关键词研究、内容优化、链接建设等。通过深入了解用户需求和搜索习惯,选取合适的关键词,提高网站在搜索引擎中的排名。注重网站内容的质量和原创性,定期更新有价值的内容,吸引用户访问和分享。积极寻求
超逼真美女写真生成全攻略,教你用AI轻松制作完美作品!
在社交媒体蓬勃发展的时代,我们似乎每天都被美丽的图片和视频包围。然而,这些令人心动的写真到底是如何生成的呢?是否有一种工具可以帮助我们轻松制作出逼真而富有魅力的美女写真?答案是肯定的!通过画画、拍照、修图,我们可以用AI技术
高档轿车的智能化配置有哪些亮点?
高档轿车的智能化配置亮点众多。比如奔驰纯电 G 级,内饰搭载第 2 代 MBUX 智能人机交互系统,有“数字越野座舱”“实时越野路面影像”功能,可选 MBUX 高端后排娱乐系统,丰富车内娱乐。奥迪 AUDI E 概念车,采用激光雷达路线,配备高级驾
连点器免费永久版下载安装
连点器免费永久版下载安装是一款无需root权限的连接器app,它可以帮助用户快速连接,解放双手,非常完整和强大。用户只需要设置点击频率和点击位置,就可以挂机了,而且还支持后台自动运行。这款万能连接器非常实用,适用于各种需要频繁点
香港最准100‰免费,揭秘“香港最准100%免费”关键词背后的真相与风险:警惕网络陷阱,保护个人隐私安全
  揭秘“香港最准100%免费”关键词背后的真实面纱与潜在危害  摘要:
雷雨 pdf epub mobi txt 电子书 下载 2024
他被称为“东方的莎士比亚”,他的四大剧作在舞台和人间反复上演。 每部剧作都是他对那个时代热烈的的爱与恨,都是一首燃烧生命的诗。 生命始于夏,作者出于一种“情感的迫切的需要”,“以一种悲悯的情怀来俯视这群地上的人们”,通过两个
成色好的Y31S是国产精品首选-体验卓越性能与高性价比:打造智能手机新标杆!
在如今的智能手机市场,国产品牌的崛起带来了更多的选择,而成色好的Y31S作为一款经典之作,以其卓越的性能和高性价比赢得了众多用户的青睐。这款手机不仅在外观设计上精致独特,在硬件配置和用户体验上也做到了极致的平衡,成为不少人心目
百度搜索指数究竟意味着什么?又应当如何去查看?
百度堪称众人最为熟知的平台,据相关统计,其当下的用户访问量已然超亿,并且这一数据还在持续上扬。正因如此,众多企业的营销活动都依托于百度平台展开,皆期望借助其庞大且精准的流量,以更快达成产品与服务的变现目标。然而,在百度的营
谷歌浏览器32位1.3.36.352
谷歌浏览器是一款快速、安全且免费的网络浏览器,软件内置防止“网络钓鱼”及恶意软件功能,可以提帮助你快速、安全的搜索到自己需要的内容,对于追求速度,隐私安全的用户们,就快下载这款浏览器吧。谷歌浏览器地址栏搜索在谷歌浏览器地址
盘点Android开发者必备的十大开发工具
Android SDK提供了一系列可帮助开发者设计、创建、测试和发布Android应用程序的强大工具,以下是编译developer推荐的10款最常用的开发工具。 1.Eclipse w/ADT2.Android SDK and AVD Manager3.Android Debug Bridge(adb) 该工
相关文章
推荐文章
发表评论
0评