很多時候在構建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上的鏡像進行容器的構建了。