Docker介紹

Docker是一個改變我們部署應用程式和分發應用程式方式的工具之一。 它是一項非常受歡迎且廣受大多數使用者喜愛的技術,將其列入履歷中是一件很棒的事情。 使用Docker,我們可以創建一個封裝整個應用程式的容器。 不僅如此,它可以封裝整個應用程式並保存為映像以便輕鬆複製。 在這裡,複製是關鍵詞。使用Docker,我們可以創建運行在你的電腦、客戶的電腦、你的服務器等任何地方的獨立環境,並使用我們想要運行的軟體的特定版本。 這有助於解決從配置錯誤和不同環境之間版本不匹配導致的各種問題。 Docker很複雜,但我認為它用相對用戶友好的方式處理了許多複雜的問題。 這就是為什麼"理解它"可以從你作為開發者和作為軟體使用者的生活中減少很多複雜性的原因。 不再有"但在我的電腦上運行正常"這樣的問題了。你不再需要這樣說,別人也不需要再這樣對你說了。 我們都知道調試是困難的,當某些東西在你測試過的所有環境中運行正常,但在某些奇怪的配置上卻不正常時,這就更難了。有太多的變動部分。 Docker也非常適合分發你創建的軟體,但你不想應對來自於試圖在所有可能的Web伺服器和配置上安裝它的人們所提出的無數支援請求。 我知道受歡迎的論壇應用程式Discourse在很大程度上依賴於Docker。我現在找不到參考資料,但我敢肯定我讀過他們只會支援運行官方Docker映像的安裝問題。我在這裡可能錯了,但這個想法聽起來並不是無稽之談: 如果你作為一個程式設計師可以創建一個在任何你可以部署Docker容器的地方運行的映像,那麼作為一個使用者,你絕對應該利用這一點。 Docker的另一個重大好處是能夠運行不同版本同一套軟體堆疊的多個應用程式,如果沒有類似的解決方案,這將變得困難或至少令人困惑。 在接下來的教程中,我們將介紹幾個Docker的概念,並探索如何使用以下內容: Docker映像 Docker容器 Dockerfile 基於Docker映像更新已部署容器 如何提交更改到Docker映像 如何在Docker容器外部訪問檔案 在Docker Hub上共享Docker映像 從命令行操作Docker映像 從命令行操作Docker容器 如果Docker容器立即退出該怎麼辦 從頭開始創建一個簡單的Node.js Hello World Docker容器 使用Docker Desktop管理容器 安裝Docker後的第一步 在macOS上安裝Docker 等等!

使用命令行操作 Docker 容器

Docker Desktop 应用程序非常方便地通过图形界面操作容器。 您并不需要使用它,您也可以使用命令行工具操作。 docker ps 命令可以列出当前正在运行的容器: 这与运行 docker container ls 命令相同。 在这个例子中,容器名称为 node-app,ID 为 739037a911e0,由镜像 examplenode 创建,创建时间为 4分钟前,启动时间为 4分钟,并且主机机器的端口80映射到容器端口3000,使用的是TCP协议。 当您知道容器的 ID 时,可以通过运行以下命令停止容器: docker container stop <ID> 容器停止后,可以使用 docker container ls -a 命令查看它: 您可以使用 docker container rm 命令删除它: docker container rm <ID> 您可以使用 docker inspect 命令查看容器的所有详细信息: 另一个非常有用的命令是 docker info,它可以提供有关当前 Docker 安装状态的大量信息,包括容器和镜像的数量。

如何提交更改到Docker映像

當你部署應用程式後,發現有個 bug 需要修復,或者只是想要發佈更新,該怎麼辦? 執行 docker ps 命令可以取得正在運行的容器的 ID,然後使用 docker commit 來從中創建一個新的標籤: docker commit <id> <username>/<imagename>:<tagname> 你還可以在新版本中添加一個變更日誌訊息,列出新版本中的變更內容: docker commit --change "description" <id> <username>/<imagename>:<tagname>