首先,让我们回顾一下Docker镜像的基本概念。Docker镜像是一个包含了应用程序以及其所有依赖项的独立文件系统。它是从 Docker 容器创建的模板,可以用来启动新的容器实例。镜像具有轻量、可移植和可重复部署的特点,这使得它们成为构建和分发应用程序的理想选择。
那我们为什么要去定制 修改镜像?
定制自己的镜像,通过修改现有的 Docker 镜像,并将其上传到 Docker Hub,您可以轻松地创建适合自己特定需求的定制化环境。这种自定义镜像的能力使您能够快速部署和共享应用程序、工具和服务,无论是个人项目还是团队协作,都能大大提高效率。
修改镜像之前,您需要了解 Dockerfile 的概念。Dockerfile 是一个文本文件,其中包含了一系列的指令,用于描述如何构建一个 Docker 镜像。您可以使用各种指令来安装软件包、复制文件、设置环境变量等。编写一个正确的 Dockerfile 是定制镜像的关键步骤之一。
在 Dockerfile 中完成镜像的修改后,接下来就是构建镜像。通过运行 docker build 命令,并指定 Dockerfile 的路径,Docker 引擎将根据 Dockerfile 的指令来构建新的镜像。这个过程可能需要一些时间,具体时间取决于镜像的大小和操作的复杂性。
一旦构建完成,您可以使用 docker run 命令来启动基于您修改后的镜像的容器。这将创建一个实例化的容器,其中包含了您所需的所有环境和应用程序。您可以在容器中进行测试和验证,确保镜像的修改满足您的预期。
最后就是上传工作了,您可以将其上传到 Docker Hub,与其他人共享。
好的,废话有点多,开始了
我们还是引用前面的独角数卡为例,感谢stille大神提供了源代码:
项目地址:https://github.com/stilleshan/dockerfiles/tree/main/dujiaoka
步骤如下:
1.把代码全部下载到本地
2.打开终端,新建一个项目,命名du
代码如下:
sudo -i
mkdir du #在root目录下新建了一个du文件夹
chmod -R 777 /root/du #赋予该目录全部权限
cd /root/du #定位到目录
3.文件管理器进入root/du目录,将开发者的代码全部复制进该目录,输入下面代码查看一下:
vi Dockerfile #编辑文件
可以试着先了解一下里面的内容,然后先按esc 再按shift加: 最后按wq 回车为保存退出
4.构建镜像,直接输入下面的命令
docker build -t 你的用户名/你的仓库名:标签 .
注意: -t 参数是给镜像命名并打标签,用户名 仓库名 标签 需要自己修改
因为是示范,用户名是你自己docker hub上的用户名,仓库名是du,标签默认是latest,后面还有一个点
5.构建镜像要一点时间,耐心等一下,看见成功字样就可以了,输入下面命令,查看镜像
docker images
6.如果构建后的镜像没有对应我们的仓库名,可以使用另一个命令docker tag来完成
docker build -t 你的用户名/du:标签 .
docker tag du:v1 你的用户名/du:标签
7.使用docker login 登陆到远程仓库,再执行docker push即可
docker login #登录到仓库
docker push 你的用户名/du:标签 #推送镜像
8.等待推送完成,一切就都大功告成了。后面就可以自己测试镜像了。
上面是一种方法,下面再提供另外的一种思路
以下仅供测试:
1.启动一个新的容器,使用docker run命令,并指定要修改的镜像名称和版本号,
docker images #命令找到镜像ID
docker run -it 镜像id bash
docker run -it 镜像id sh
2.查看文件,并试着编辑文件,这里我们就以查找默认模版的powered by字样为例
ls resources/views/unicorn/layouts/ #查看
vi resources/views/unicorn/layouts/_footer.blade.php #编辑
3.修改后退出编辑器,再退出容器
exit #退出
4.保存修改后,我们就创建新的镜像。
docker ps -a #命令找到容器ID
docker commit 容器id 你的用户名/新的镜像名称
注意:是容器ID,不是镜像ID,不要搞混淆。新的镜像名称,是你要创建的新镜像的名称。
5.测试新的镜像。使用 docker run命令来启动新的镜像,并测试修改是否生效。
docker images #找到新的镜像id
docker run -it 镜像id bash #启动
6.接着再次推送即可。
结束语录:
本文中,为了方便,直接拷贝了原作者的源代码。若是想定制修改它人镜像, 最重要的是找到Dockerfile配置文件,通过修改里面的信息得到自己个性化的镜像。
好了,克隆镜像和修改镜像这两部分算是讲完了,朋友们可以按照我的方法试着去修改一下。多多动手,学着学着就会了。