Docker之鏡像發布

2022-01-09 Python自動化測試

       在前面的文章中系統的介紹了Docker鏡像的管理以及Docker中容器的管理,和使用Dockerfile來針對主流程式語言的環境部署。下面詳細的概述下Docker中鏡像的發布以及Docker中鏡像發布的詳細過程。

      首先在https://hub.docker.com/地址註冊一個帳戶。如果想把自己的鏡像發布到dockerhub的地址,那麼鏡像的名稱必須是name/imageName如image的名稱為hello 那麼要發布的鏡像名稱就為:wuyashare/hello,如果不這樣處理的話,進行push的時候,就會提示沒有權限的操作,這點需要特別的注意。下面詳細的演示發布鏡像的過程,具體如下:

#登錄到dockerhub
[root@wuyaShare ~]# docker login
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded

#查看已打包的鏡像文件
[root@wuyaShare ~]# docker image ls | grep flask
flask_web latest a729b9e871d5 20 hours ago 481MB

#修改鏡像文件為符合push的名稱
[root@wuyaShare ~]# docker tag a729b9e871d5 wuyashare/book
[root@wuyaShare ~]# docker image ls | grep book
wuyashare/book latest a729b9e871d5 20 hours ago 481MB

#發布鏡像到dockerhub
[root@wuyaShare ~]# docker push wuyashare/book:latest
The push refers to repository [docker.io/wuyashare/book]
18a0c85cec57: Pushed
ccddeef0e471: Pushed
0aa6da94c8d9: Pushed
bf30ad1ae062: Pushed
3f731ba12c3e: Pushed
aed45bc432f2: Pushed
703c251de224: Pushed
36f20b3f9e91: Pushed
fb82b029bea0: Mounted from library/centos
latest: digest: sha256:56a92f3d696e0ac4d49746a63d2c6f384357670d7eb2011c3653509a9c6b0e84 size: 2204

下來到自己的dockerhub的主頁,就可以看到發布的鏡像信息了,具體如下所示:

當然下來就可以獲取自己發布的鏡像了,具體如下所示:

#從dockerhub獲取鏡像信息
[root@wuyaShare ~]# docker pull wuyashare/book
Using default tag: latest
latest: Pulling from wuyashare/book
9b4ebb48de8d: Already exists
a9c452da1e09: Pull complete
c3b21741ca1e: Pull complete
2daa5f93af93: Pull complete
99a143663da8: Pull complete
6ddb7dd30ad9: Pull complete
86969619219d: Pull complete
26db951a2c92: Pull complete
8757f98f9b66: Pull complete
Digest: sha256:56a92f3d696e0ac4d49746a63d2c6f384357670d7eb2011c3653509a9c6b0e84
Status: Downloaded newer image for wuyashare/book:latest
docker.io/wuyashare/book:latest

#運行鏡像
[root@wuyaShare ~]# docker run -it --rm wuyashare/book:latest
* Serving Flask app 'app' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Running on all addresses.
WARNING: This is a development server. Do not use it in a production deployment.
* Running on http://172.18.0.2:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 105-275-560
#獲取運行的容器ID的信息
docker ps -a | grep book
b13de0ca638f wuyashare/book:latest "python3 app.py" 2 minutes ago Up About a minute 5000/tcp focused_pasteur

#進入正在運行的容器
[root@wuyaShare ~]# docker exec -it b13de0ca638f bash
[root@b13de0ca638f opt]# ls
app.py
[root@b13de0ca638f opt]#

        如上,可以看到,我們通過Dockerfile構建一個鏡像後,可以把鏡像文件發布到dockerhub中,這樣不管是自己還是其他的人員都是可以獲取這個鏡像文件,然後對它進行運行,從而提供具體的服務。比如您編寫了一個測試的工具,想讓別人使用它,那麼可以發布成鏡像,然後對鏡像運行後,這樣直接可以運行,而對方不需要刻意搭建運行這個測試工具的環境。感謝您的閱讀,後續會持續的進行更新。

相關焦點

  • 發布 Docker 鏡像到 Dockhub 倉庫
    推薦內容:複製文件到正在運行的 Docker 容器中[1]|Youtube(需科學上網)[2]將正在運行的容器保存為本地 Docker 鏡像[3]|Youtube(需科學上網)[4]我們已經在本地建立了一個鏡像,並且這個鏡像已經通過了我們的測試,現在我們就可以將它發布到我們的伺服器上,而要發布到伺服器上創建容器就需要一個存儲這些鏡像的地方
  • 使用Maven插件快速發布Docker鏡像
    本文將簡單介紹dockerfile-maven-plugin插件的配置、使用過程,用來快速發布Docker鏡像。-- docker鏡像的repository屬性 --><repository>my.docker.com:5500/${project.name}</repository>                <!
  • Docker鏡像常用命令
    docker info   顯示 Docker 系統信息,包括鏡像和容器數命令參數 OPTIONS意義-a列出本地所有的鏡像-q只顯示鏡像ID--digests顯示鏡像的摘要信息--no-trunc顯示完整的鏡像信息docker search 鏡像名稱docker search 鏡像名稱:TAG    從Docker Hub查找鏡像
  • Docker鏡像
    鏡像可以用來創建Docker容器的。一個鏡像可以包含一個完整的作業系統環境和用戶需要的其它應用程式。在docker hub 裡面有大量現成的鏡像提供下載。docker的鏡像是只可讀的,一個鏡像可以創建多個容器。如同在電腦上安裝系統鏡像文件。
  • DIY自己的docker鏡像
    基本的格式為 docker build [選項] ] [Dockerfile路徑],該命令將讀取指定路徑下(包括子目錄)的 Dockerfile,並將該路徑下所有內容發送給 Docker 服務端,由服務端來創建鏡像。因此一般建議放置 Dockerfile 的目錄為空目錄。
  • 玩轉Docker鏡像
    busybox(只有1M多)創建一個文件夾(/tmp/foo)和一個文件(bar),該文件分配了100M大小實際上它最終什麼也沒做,我們把它構建成鏡像(構建可以參考一期[2]):docker build -t busybox:test .
  • 【Docker】系列教程01-使用Docker鏡像
    當同一個鏡像擁有多個標籤時,docker rmi命令只是刪除該鏡像的一個標籤副本,並不影響鏡像文件。2)使用鏡像ID刪除鏡像 docker rmi 命令後跟鏡像ID的前綴即可匹配刪除docker pull ubuntu:18.043、列出本地鏡像列表docker images4、查看鏡像詳細信息docker inspect ubuntu:18.045、查看鏡像歷史信息docker history ubuntu
  • 【Docker學習】2. 操作鏡像
    獲取鏡像Docker Hub 上有大量的高質量的鏡像可以用。從 Docker 鏡像倉庫獲取鏡像的命令是 docker pull。列出鏡像要想列出已經下載下來的鏡像,可以使用 docker image ls 或者docker images命令。
  • Maven構建Docker鏡像
    SpringBoot應構建Docker鏡像 本文主要介紹使用Maven將SpringBoot應用打包成Docker鏡像,並上傳到私有鏡像倉庫Docker Registry.鏡像倉庫Docker Registry的搭建 1.Pull Registry鏡像docker pull registry:22.鏡像倉庫的容器實例docker run -d -p 5000:5000 --restart=always --name registry
  • Docker高級篇之Harbor鏡像私服-雲原生核心
    本文給大家介紹下Docker中的常用的鏡像私服倉庫,DockerHub,阿里雲倉庫和Harbor鏡像私服倉庫。1 Docker hub官網地址:hub.docker.com(1)在docker機器上登錄docker login(2)輸入用戶名和密碼在這裡插入圖片描述(3)docker push q279583842q/tomcat-ip[注意鏡像名稱要和docker id一致,不然push不成功](4)給image
  • Docker鏡像瘦身與優化
    Scratch,https://hub.docker.com/_/scratchScratch是空白鏡像,一般用於基礎鏡像構建,例如Alpine鏡像的Dockerfile便是從Scratch開始的:FROM scratchADD alpine-minirootfs-20190228-x86_64.tar.gz /CMD ["/bin/sh"]
  • Docker 鏡像的構建原理和四種製作鏡像方式
    Docker 鏡像的構建原理和方式Docker構建鏡像的方式有多種,先介紹下最常用的兩種通過docker commit命令,基於一個已存在的容器構建出鏡像。編寫 Dockerfile 文件,並使用docker build命令來構建鏡像。
  • Docker鏡像運行&刪除(三)
    獲取docker的鏡像後,就可以運行對應的docker的鏡像信息了,運行的命令為run,具體指令總結如下:-it:
  • Docker 鏡像如何做到「一次構建,到處運行」?
    不論是哪種原因,通常我們都需要整理好行裝進行一段朝聖之旅。但是這個旅程不是登上孤獨的山頂,而是通向地獄深淵,是一段從開發應用程式的陽光平原走向計算機體系結構的黑暗洞穴之旅:底層系統和嵌入式變化帶來的難以捉摸的世界。介於這次跋涉的前景堪憂,大部分黑客最終通過 Ctrl+Z 結束了旅程,回到了地面,一邊喘氣一邊警告同伴交叉編譯、QEMU 和 chroot 的恐怖之處。
  • Docker 鏡像的備份恢復遷移
    tar 歸檔文件,需要使用時將 tar 包恢復為鏡像即可;登錄 DockerHub 註冊中心,將鏡像推送至 DockerHub 倉庫方便使用;搭建私有鏡像倉庫,將鏡像推送至私有鏡像倉庫方便使用。接下來我們通過 tar 歸檔文件的方式實現鏡像的備份恢復遷移。鏡像備份使用 docker save 將指定鏡像保存成 tar 歸檔文件。docker save [OPTIONS] IMAGE [IMAGE...]
  • 【長篇博文】Docker學習筆記(三):鏡像的分層、打包、雙向綁定、導入導出、Dockerfile的構建、部署與發布
    構建tensorflow環境4.2.5、發布自己的docker鏡像方法一方法二docker01:在docker0的卷volume01中創建文件docker_AB01docker02:在在docker02的卷volume01中可以看到docker01創建的文件docker_AB01docker03:在docker03的卷
  • Docker Hub最受歡迎的10大鏡像
    這比在六月的DockerCon上提及的150,000略少(的確增長到過那個數字),可能因為有一些私有庫。在這些公有庫中,39,441(31%)是自動構建(automate build),也就是說這個鏡像是由Docker Hub,構建一個已經發布的Dockerfile生成的鏡像。
  • 構建安全可靠、最小化的 Docker 鏡像
    原文發布在我的個人站點: GitDiG.com. 原文連接:構建安全可靠、最小化的 Docker 鏡像.1. 構建鏡像1.1 手動構建手動構建 Docker 鏡像的流程圖,如下:3.4.2 多階段構建鏡像多階段構建 Multi-StageBuild 是 Docker17.05 版本開始引入的新特性。通過將原先僅一個階段構建的鏡像查分成多個階段。之所以多階段構建鏡像能夠縮減鏡像的大小,是因為發布程序在編譯期相關的依賴包以及臨時文件並不是最終發布鏡像所需要的。通過劃分不同的階段,構建不同的鏡像,最終鏡像則取決於我們真正需要發布的實體是什麼。
  • RHEL7安裝Docker與修改鏡像倉庫源
    Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然後發布到任何流行的 Linux或Windows
  • Docker系列教程04-Docker構建鏡像的三種方式
    簡介創建鏡像的方法主要有三種:基於已有鏡像的容器創建、基於本地模板導入、基於Dockerfile創建。今天就逐一講述為大家講述,如何構建屬於自己的docker鏡像。1、基於容器構建鏡像基於已有容器構建鏡像主要是通過docker commit命令來構建新的鏡像,語法規則如下:docker commit 語法下面將演示下如何基於已有容器構建鏡像1、首先,創建一個容器,並在其容器內創建一個test文件,之後退出。