服务器Docker镜像推送方法,上传到仓库步骤

阿木 发布于 9 小时前 1 次阅读


镜像这东西,说起来玄乎,其实就像你早上起来照的那面镜子。

然而,放置在电脑之内的镜子,所映照浮现出来的可是一个虚拟模样的自身,完全是相同没有差异的,不管是能够奔跑还是跳起来都没问题,然而你却根本没办法抓住它。

半夜三点改代码,突然服务器崩了。

这时候你最想啥?

一种目光,一份留存,一种可令你一刹那间返回十分钟之前的“反悔之药”。

对,镜像就是那粒药。

到底啥是镜像?别跟我扯源码

我阅览过那些官方所撰写的文档,诸如所谓的“只读文件系统”,以及另所谓的“分层结构”。

打住。

你当作那是一个,刚完成系统安装的U盘,然而此U盘并非插在,电脑的后部位置,而是插在“虚空”之中的。

那里边有着各种各样的东西,其中包含Ubuntu系统,还有Nginx环境,以及你所编写的那一系列存在问题的代码,它们全被打包整理好了,正安安静静地处于放置状态。

但它不能自己开机。

它得等一个叫“容器”的东西把它“激活”。

容器跑起来,镜像就活了,跟真操作系统一模一样 。

镜像仓库?不就是个大硬盘嘛

对,就是放镜像的地方。

你需要这样去理解,属于你自身的电脑它是本地硬盘,而Docker Hub就如同百度网盘。

你在上面注册个账号,就有了自己的私人文件夹。

拉取镜像?

就是“下载”。

推送镜像?

就是“上传”。

你于命令行之中敲击 docker pull nginx,此行为乃是从那个规模巨大、范围广阔的公共仓库内里,将Nginx那个经过特殊处理、类似“阉割版”的系统搬运至你家的客厅之处哦。

可是存在那么一点,着实让人烦扰,就是你所传输的镜像前面是需要添加用户名的,就如同 你的名字/nginx 这样的形式。

官方的就不用,比如 nginx,傲娇得很 。

Docker Hub:程序员的共产主义试验田

这名字取得真好。

Hub,中心,集线器。

上面啥都有。

开源、共享、版本控制……这不就是GitHub那一套吗 ?

开源与共享:大多数镜像都公开,随便下。

但你想藏私房钱?

想建私人仓库?

交钱。

代码由GitHub进行托管,而异于代码的镜像则是由Docker Hub予以托管,这整个被称为镜像托管。

从本质层面来讲,都是相同的,存在害怕丢失的情况,并且也是为了能够让他人去借鉴(哦,不对,准确说是共享资源)。

版本控制:Git有tag,镜像也有tag。

最新版是 nginx:latest,那个经典稳定版是 nginx:1.23.3,想回滚的话就能够回滚。

你说这算不算另一种形式的共产主义?

各取所需,按需分配。

自己动手,捏一个镜像

光看不练假把式。

我试过两种方法,一种糙快猛,一种装文艺。

查查查

想找镜像?

docker search nginx

一堆结果冒出来,STARS越多的越靠谱,跟大众点评似的 。

拉下来

docker pull 镜像名

比如 docker pull centos:7

瞧见进度条跑完啦,这般“阉割版”的CentOS就在你硬盘之中安稳躺好了哟。

第一种:commit 大法(快照方式)

在这之前,要先让它奔跑起来,具体的操作指令是,docker运行一个交互的容器,并且给这个容器命名为myubuntu,运行的镜像为ubuntu,运行之后的命令环境是/bin/bash。

这时候你已经“进入”这个虚拟系统了。

2. 随意地进行各种折腾:于其中执行“apt-get install vim”,安装Python,搭建一下环境。

随便造,这就是你的 playground。

3. 打包:玩够了,exit 退出来。

之后,去执行叫做docker commit的操作,给它添加一个叫做-m,内容是加了vim的标记,把容器ID作为参数,将你的名字/myubuntu:v1作为目标。

4. 这就成了!

一个属于你的镜像,新鲜出炉。

第二种:Dockerfile 文艺青年法

新建一个文件,就叫 Dockerfile,里面写:

FROM python:3.8-slim
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

然后,使用命令docker build,为其添加参数-t,参数值为你的名字/myapp:v1,最后一个点号表示当前目录,执行这样的命令。

看见没?

这是菜谱 。

以后想改啥,改菜谱就行,不用每次都进厨房重新炒菜。

这才是现代人该干的事。

写完这些,我看了眼窗外

镜像这东西,说白了就是人类对“完美复制”的执念。

我们惧怕遗漏,惧怕体系垮掉信息没了,惧怕条件设了三天一关机全白做。

于是我们发明了镜像。

把那个最完美的瞬间,咔嚓一下,拍下来,存好。

以后崩了?

不怕。

从镜像里再跑一个就行。

跟生活一样。

就算当下状况乱七八糟,只要过往你存在过那般完美情形,将其拍成镜像,那你便始终拥有机遇,再次从头开始。

只是,人生的镜像,该用什么命令来 commit 呢?