【docker基础】: 镜像的发布

143 阅读2分钟

镜像发布

为什么发布镜像

当我们拉取了镜像之后,发现这个镜像很不错, 然后我们自己又为其添加一些功能,我想把这个镜像永久保存,而不仅仅是存在我的本地,这时候我该怎么办呢?

答案是推送到云端,docker 有一个共享的平台Docker Hub,我们平时拉取的镜像都是来自这里;为此,我们想要保存自己的镜像,也需要将其推送到这个平台,这样我们拉取和共享镜像就更加方便了。

这篇文章我们就来好好学习如何对镜像进行改进并推送到云端。

创建自己的镜像

为什么要创建自己的镜像,我们使用ubuntu的镜像时,我们总是需要自己安装vim,sudo这些软件包,而我想要构建一个镜像天生自带这些包,因此,有下列操作:

  1. 去这里创建自己的账号Docker Hub,毕竟要存在你的云端存放,没有帐号怎么存?
  2. 创建一个文件夹,将其使用vscode打开,然后在文件夹内创建一个install.sh文件
  3. 我们编写这个脚本文件(虽然它是脚本文件,但是它不难的,了解一点linux就行), 编写如下:

image.png

第一条语句更新本地APT软件包存储库中的软件包列表;
第二条语句用于安装vim和sudo。
这是一个很简单的脚本。

  1. 编写Dockerfile文件:

image.png

第一条语句用于拉取Ubuntu镜像
第二条语句用于复制脚本到镜像中去
第三条语句用于给脚本添加执行权限和执行脚本
第四条语句用于默认启动bash窗口

  1. 根据这个Dockerfile构建我们的镜像: docker build -t my_image:1.0 .
  2. 构建成功后使用docker images确定一下
  3. 确定之后使用它跑一个实例: docker run -it my_image:1.0
  4. 验证一下sudo和vim安装成功没,如下图,依次输入'sudo', 'vim --version' image.png
  5. 成功之后就可以发布我们的镜像了,但是还有一些要求,为了防止冲突有以下规则
    • 建一个仓库: image.png
    • 将镜像命名为 YOUR-USER-NAME/<镜像名>:
      docker tag my_image:1.0 sunaddd/my_image:1.0,那个sunaddd是我的名字,改成你的。
  6. 登录你的账号使用docker login
  7. 推你的镜像上去: docker push \<你的用户名\>/my_image:1.0, 你在推的时候:后面指定它的版本。

然后就成功了:

image.png

  1. 然后拉取它: docker pull <你的用户名>/my_image:1.0。

  2. 然后使用: docker run -it <你的用户名>/my_image:1.0, 进入容器内部,使用sudo,观察是否成功下载了sudo。


上面就是容器的构建与推送过程,按照上面的流程就可以成功发布自己的镜像了。

下一章,数据持久化: 【docker基础】: 数据持久化--volume - 掘金 (juejin.cn)