docker構建鏡像并上傳dockerhub

docker構建鏡像并上傳dockerhub
前提條件:需要連接梯子

  1. 將梯子配置到虛擬機中(確保主機能夠連接 hub.docker.com)
  • 使用ipconfig 查詢主機的 ip4地址
  • 虛擬機的連接模式改成橋接模式(復制主機的地址網絡)
  • 將ip4配置到虛擬機(將/etc/environment中的http的ip地址和端口更改為主機查詢到的ip4地址(除localhost之外的所有))
# http_proxy="http://ip地址:端口號"
http_proxy="http://192.168.1.26:10090"
https_proxy="http://192.168.1.26:10090"
ftp_proxy="http://192.168.1.26:10090"
no_proxy="localhost,127.0.0.1"
# no_proxy 表示什么時候不走代理
  • source /etc/environment 運行一下新配置的環境變量
  • echo $http_proxy 或者echo $path查看一下環境變量是否設置成功
  • 沒有成功的話,嘗試重啟虛擬機
  • 虛擬機能夠連上google之后不代表docker能夠使用梯子,因為docker是獨立的,所以需要再次配置daemon.json文件中的http代理協議
  • 配置完成之后重啟docker(systemctl restart docker
  1. 了解dockerfile(docker能夠實現的基礎)中的內容
    Dockerfile 本質上是一個文本文件,用于定義如何自動構建 Docker 鏡像。它包含了一系列指令(Instructions),這些指令是用來指導鏡像的構建過程,實現自動化、可移植性和環境一致性。 Docker 引擎會按照這些指令逐步構建出一個可運行的容器鏡像。
    以下是dockerfile中的一些基礎內容(關鍵詞必須是大寫的):
# 拉取鏡像 from node
FROM node:alpine
# alpine :輕量級的Linux操作系統(如果使用ubuntu的話會比alpine大很多)# 創建工程目錄
WORKDIR /usr/src/app
# 這個目錄是docker container(docker容器)里邊的文件系統# 拷貝文件并安裝
# copy 主機目錄(源頭) docker容器目錄(目標)
COPY package*.json ./
# 和python中的pip install一樣,安裝 包
RUN npm install # copy的第一個.相對路徑(主機目錄)
# copy的第二個.相對路徑(docker鏡像目錄)
COPY . .# 表示該程序運行在容器的3000端口
EXPOSE 3000
# 注:運行到主機端口需要用到端口映射( 端口映射:容器端口  映射 主機端口)
# 在主機通過主機端口去運行容器# 運行server.js(鏡像到容器的分界,使靜態轉化為動態可運行的狀態,在cmd中要寫的內容)
CMD ["node","sever.js"]
# 如果是python文件的話就是 cmd ["python","xx.py"]
  1. 工程創建好之后需要使用build構建鏡像,基于鏡像在容器中運行程序。
# 將當前目錄 構建 名稱為名稱 的鏡像
docker build -t 名稱 . 
# 注:如果要推到dockerhub上的時候名稱需要帶上自己在dockerhub上的用戶名# 查看鏡像
docker image ls 
# 運行容器,并將容器端口映射到主機端口
docker run -p 主機端口號:容器端口號  鏡像名稱
# 查看運行的容器
docker container ls # 停止id的容器
docker stop ID 
# 查看所有的運行過的容器
docker ps -a 
  1. 將構建好的鏡像上傳的到自己的dockerhub中
# 將docker中的鏡像上傳到dockerhub中自己的倉庫中:
# 登錄賬號:
docker login -u 用戶名
# 將鏡像推到dockerhub 中
docker push 鏡像名# 從dockerhub中下載相應的鏡像
# 其中在拉取	其他鏡像的時候會使用-it參數,表示以交互式的方式去運行,本地沒有的話會從網上下載)
docker pull 用戶名稱/鏡像名稱
# 注意:不同操作系統生成的鏡像不能在不同操作系統下運行(即windows的鏡像只能在windows操作系統中運行)# 刪除鏡像(要先刪除依賴其產生的容器,才能刪除鏡像)
# rmi是remove image的縮寫
docker rmi 鏡像ID
# 刪除容器
docker rm  容器id

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80243.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80243.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80243.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python實現的音樂播放器

python實現的音樂播放器 音樂播放器,原來寫過一個簡陋的例子,可見 https://blog.csdn.net/cnds123/article/details/137874107 那個不能拖動播放進度條上的滑塊到新的位置播放。下面介紹的可以拖動播放進度條上的滑塊到新的位置播放。 簡單實用的音樂播放器 這個簡單實用的…

[網安工具] 端口信息收集工具 —— 御劍高速 TCP 全端口掃描工具 · 使用手冊

🌟想了解其它網安工具?看看這個:[網安工具] 網絡安全工具管理 —— 工具倉庫 管理手冊 https://github.com/NepoloHebo/Yujian-high-speed-TCP-full-port-scannerhttps://github.com/NepoloHebo/Yujian-high-speed-TCP-full-port-scanner 0…

數字孿生賦能智慧城市:從概念到落地的深度實踐

在城市規模與復雜度持續攀升的當下,傳統管理模式已難以滿足現代城市精細化治理需求。數字孿生技術憑借構建虛擬城市鏡像、實現實時數據交互與智能決策的特性,成為智慧城市建設的核心引擎。本文將通過多個典型案例,深度解析數字孿生技術如何重…

DeFi開發系統軟件開發:技術架構與生態重構

DeFi開發系統軟件開發:技術架構與生態重構 ——2025年去中心化金融開發的范式革新與實踐指南 一、技術架構演進:從單一鏈到多鏈混合引擎 現代DeFi系統開發已從單一公鏈架構轉向“跨鏈互操作混合模式”,結合中心化效率與去中心化安全雙重優勢…

相同IP和端口的服務器ssh連接時出現異常

起因 把服務器上的一個虛擬機搞壞了,所以刪除重新創建了一個,端口號和IP與之前的虛擬機相同。 ssh usernameIP -p port 時報錯 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone…

驗證es啟動成功

1. 查看命令行輸出信息 在啟動 Elasticsearch 時,命令行窗口會輸出一系列日志信息。若啟動成功,日志里通常會有類似下面的信息: plaintext [2025-05-06T13:20:00,000][INFO ][o.e.n.Node ] [node_name] started其中 [node_na…

CentOS網絡之network和NetworkManager深度解析

文章目錄 CentOS網絡之network和NetworkManager深度解析1. CentOS網絡服務發展歷史1.1 傳統network階段(CentOS 5-6)1.2 過渡期(CentOS 7)1.3 新時代(CentOS 8) 2. network和NetworkManager的核心區別3. ne…

Unity:父掛 Rigidbody2D、子掛 Collider2D 時觸發器不生效的問題分析

目錄 ?問題現象 🔍 排查與定位 ?? Unity 觸發機制的核心要求 ? 為什么把 Collider2D 移到父物體后就能觸發? 💡 解決方案 在 Unity 2D 游戲開發中,很多人習慣用父物體掛載 Rigidbody2D,而將不同的身體部位&am…

Google AI版圖:解析AI Studio, Gemini, NotebookLM與GCP

1. 2C vs 2B: AI Studio: 主要是面向開發者,提供一個易用的界面來探索和構建基于Google模型的應用。雖然最終的應用可能服務于C端或B端,但AI Studio本身更多是一個開發者的工具平臺,可以看作是連接模型能力和各種應用的橋梁。它可以被個人開…

Oracle EBS AP發票被預付款核算創建會計科目時間超長

背景 由于客戶職能部門的水電、通信和物業等等費用統一管理或對接部門報銷費,在報銷費的時候,用戶把所有費用分攤到各個末級部門,形成AP發票行有上千行, 問題癥狀 1、用戶過賬時,請求創建會計科目一直執行20多個小時未完成,只能手工強行取消請求。 2、取消請求以后,從后…

MySQL中MVCC指什么?

簡要回答: MVCC(multi version concurrency control)即多版本并發控制,為了確保多線程下數據的安全,可以通過undo log和ReadView來實現不同的事務隔離級別。 對于已提交讀和可重復讀隔離級別的事務來說,M…

賽季7靶場 -- Checker --User flag

本系列僅說明靶場的攻擊思路,不會給出任何的詳細代碼執行步驟,因為個人覺得找到合適的工具以實現攻擊思路的能力也非常重要。root要逆向,沒做了,但是user flag也有借鑒意義,關于2FA的繞過我們有必要了解 1.首先Nmap掃描…

【RAG技術全景解讀】從原理到工業級應用實踐

目錄 🌟 前言🏗? 技術背景與價值🚨 當前技術痛點🛠? 解決方案概述👥 目標讀者說明 🔍 一、技術原理剖析📐 核心概念圖解💡 核心作用講解?? 關鍵技術模塊說明?? 技術選型對比 &…

【嵌入式開發-RS-485】

嵌入式開發-RS-485 ■ RS-485 連接方式■ RS-485 半雙工通訊■ RS-485 的特點■ UART硬流控■ RS-4851. 全雙工、半雙工接線2. 拓撲結構3. RS-485收發器3.1 發送模式(TX)3.2 接收模式(RX) 4. RS-485數據鏈路5. RS-485常用電路6. C…

[硬件電路-18]:MCU - LPC1765FBD100是恩智浦(NXP)半導體推出的一款基于ARM Cortex-M3內核的高性能32位微控制器

LPC1765FBD100是恩智浦(NXP)半導體推出的一款基于ARM Cortex-M3內核的高性能32位微控制器,具備高集成度、低功耗、豐富的外設接口和強大的處理能力,適用于工業控制、消費電子、醫療設備、通信系統等嵌入式應用場景。 以下從核心特…

MyBatis(進階)(xml標簽)

本節?標 1. 學習MyBatis的動態SQL查詢 2. 掌握MyBatis在項?中的應?, 可以使?Spring MVC完成?些基礎的功能 1. 動態SQL(XML) 動態 SQL 是Mybatis的強?特性之?,能夠完成不同條件下不同的 sql 拼接 可以參考官??檔: M…

QT QList容器及行高亮

總結QList是一個泛型/模板鏈表,可以自己定義數據類型,ExtraSelection是一種“數據類型”

【Python】Python項目中的依賴與配置:requirements.txt、setup.py、pyproject.toml 詳解

在昨天的文章【Python】通過Editable Install模式詳解,解決Python開發總是import出錯的問題 中, 我們提到了Python項目的配置文件requirements.txt、setup.py、pyproject.toml。在昨天的解決方案中, 我們同時維護了這三個文件。 由同學就問&a…

詳細聊聊 Synchronized,以及鎖的升級過程

在Java中,synchronized關鍵字是用于實現線程同步的重要機制,它通過內置鎖(Monitor)確保多個線程對共享資源的安全訪問。 1. synchronized 的基本使用與實現原理 使用方式 修飾實例方法:鎖是當前對象實例。public syn…

vue3的深入組件-組件 v-model

組件 v-model 基本用法? v-model 可以在組件上使用以實現雙向綁定。 從 Vue 3.4 開始&#xff0c;推薦的實現方式是使用 defineModel() 宏&#xff1a; <script setup> const model defineModel()function update() {model.value } </script><template>…