Docker容器学习二之镜像

一、镜像

Docker可以把我们的应用打包成一个可移植的镜像,也可以拉取打包好的镜像来共自己使用,那么也会存在一个存放docker镜像的仓库。一个官方的镜像仓库地址[https://hub.docker.com/],我们可以注册相应的账户就可以登录使用。(https://hub.docker.com/),此时,我们也可以使用阿里云的镜像仓库

本文,将分别介绍镜像仓库的设置、镜像的拉取、镜像删除、镜像修改、镜像的制作以及发布镜像到远程仓库。

二、镜像仓库设置

docker安装的时候,会默认配置官方的镜像仓库,如果我们想修改成阿里云的又应该怎么做呢?比如我们想添加某一个镜像仓库,此时我们只需要在"/etc/docker"目录下创建一个daemon.json文件,并在文件中写入如下,并只需吧${registry-mirrors}替换成对应的仓库地址就行:

{
  "registry-mirrors": ["https://${registry-mirrors}"]
}

配置完成之后,重启docker就可以,并可以通过docker info命令查看当前镜像仓库是否添加成功,如果我们想删除,某个镜像仓库,那么只需要编辑daemon.json这个文件即可,如果不想用第三方的在,直接删除这个文件,然后重启docker就可以使用默认的镜像仓库。

如果想搭建一个自己的仓库,可以采用docker的Harbor工具进行,详细过程就不做进一步了解。

三、镜像拉取

镜像拉取可以通过docker pull命令来操作

  1. 简单拉取:docker pull image
  2. 带版本拉取:docker pull image:version
  3. 带tag拉取:docker pull image:tag
  4. 带digest拉取:先要获得镜像的digest,在执行docker pull image@digest
  5. 拉取全部:docker pull -a images

拉取完镜像之后我们可以通过docker images来查看当前拉取下来的镜像
在这里插入图片描述
如第一节中拉取的hello-world镜像:

  1. REPOSITORY:镜像名
  2. TAG:当前标签
  3. IMAGE ID:镜像编号
  4. CREATED:镜像创建时间
  5. SIZE:镜像大小

四、镜像删除

镜像的删除可以使用docker rmi命令,这个命令很简单就不做介绍

五、镜像名修改

可以通过docker tag命令进行操作,比如把我们当期的hello-world镜像修改成hello。
在这里插入图片描述
此时,我们可以删除原来的镜像,并运行更名之后的镜像
在这里插入图片描述

六、镜像制作

镜像的制作,就是如何把自己的应用打包成一个镜像的过程,这里我们准备了一个简单springboot项目。
在这里插入图片描述
并打包成了一个jar文件,上传到了我们的物理机器上,根据官网的介绍,我们打包一个image需要先创建一个Dockerfile文件(具体怎么编写Dockerfile文件,后续再学学),我把jar文件和新建的Dockerfile文件放在了/root/image目录下。
Dockerfile内容如下:

FROM openjdk:8

LABEL author="cainiao1024"

COPY docker-1.0.jar my-sp-docker.jar

CMD ["java","-jar","my-sp-docker.jar"]

此时我们可以运行:docker build -t my-sp-docker .命令来打包应用
在这里插入图片描述
通过docker images可以查看到当前的镜像已经打包成功
在这里插入图片描述
我们再来运行当前镜像:docker run -d --name mydocker -p 8080:8080 my-sp-docker
此时通过docker ps命令可以查看当前启动是否成功
在这里插入图片描述
此时我们就可以通过物理主机去访问当前应用:http://ip:8080/docker
在这里插入图片描述
至此,镜像创建成功。

七、发布镜像到远程仓库

在第六部分我们已经创建好自己的镜像了,想要发布到远程上,可以使用docker push命令操作,此时我们需要通过docker login命令来登录到我们所在的镜像仓库,然后通过docker push 命令来推送当期的镜像到仓库中,此时需要注意,镜像应该按照"用户名/镜像名",方式进行推送,不然会失败(也就是推送到具体的用户名下,需要注意把当前的镜像名打标签成"用户名/镜像名")
此时我们登录到远程仓库发现已经推送成功
在这里插入图片描述
此时,我们可以从远程仓库拉取自定义镜像:docker pull solayang/my-sp-docker:latest

八、总结

本文从镜像的完整生命周期进行了一个初步介绍,后续将更深入的学习Docker相关知识。

以上,有任何不对的地方请指正,谢谢!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟+1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值