很多时候在构建docker镜像的时候,因为使用到的源是国外的或一些其他原因,导致构建时间过长。
当我们遇到这样的情况的时候怎么办呢?
解决方案:自己制作一个基础镜像(这个镜像做为基础容器),我们在写dockerfile的时候基于这个镜像进行构建。这样构建的时候直接拉取已经构建好的基础镜像,然后在此基础上进行其他的操作,这样做可以大大减少我们的构建时间。
那么我们,怎么将本地的镜像上传到dockerhub中呢?
1、登录dockerhub。
docker login
这里我已经登录过了,所以是这样的效果。如果没有登录过,会提示你填写dockerhub的用户名和密码。
tips:没有dockerhub账号的自己先注册一个哈。
2、准备本地镜像。(这里我们以现成的redis为例)
docker pull redis:latest
3、给redis镜像打上tag。一定要打上tag,并带上dockerhub的账号。要不然没办法上传到dockerhub上。
docker tag redis:latest 573734817/redis:1.01
其中:redis:latest是当前本地用户的镜像的“名字:TAG”。
573734817是我自己的dockerhub账号。
redis:1.01是我们自己定义的镜像名和版本号。
4、将该打好tag的镜像推送到dockerhub上。
docker push 573734817/redis:1.01
我们来看看结果:
我们可以看到在dockerhub上已经有了我们刚刚推送上去的redis基础镜像了,并且版本为1.01
现在我们班本地的redis镜像都删除掉,然后pull我们刚才上传到dockerhub上的redis基础镜像。
可以看到当前并没有redis的镜像。
我们pull一下。
docker pull 573734817/redis:1.01
可以看到,我们已经成功的将放在自己dockerhub里面的redis基础镜像pull下来了。
那么这就代表着,我们可以基于该dockerhub上的镜像进行容器的构建了。