[技術博客]windows中使用docker技術


背景

我們的工程使用了一個叫做termux的安卓上的linux終端,這個終端在所有的軟件包里硬編碼了軟件的運行路徑(/data/data/com.termux/..),由於安卓系統的權限設計,我們名為bingduoduo的應用並沒有使用該目錄的權限。這個bug在alpha階段查找,調試折磨了我們很長時間,因為實在沒有想到應用的運行會和應用applicationId耦合在一起。我們最終找到的解決方法是自己編譯一份termux支持的所有的軟件包,將運行路徑改為/data/data/bingduoduo/..,並自己維護一個apt的下載源。為了解決編譯時的環境問題,我們使用了Termux項目組提供的docker鏡像,所以本篇文章主要是介紹windows下docker的使用。

首先應該介紹一下docker

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

————百度百科

簡而言之,docker是一個輕量級的為了解決環境依賴問題的虛擬機。

docker可以在windows上使用,不過很少博客提到的是需要windows開啟Hype-V,而這項功能是windows 10家庭版和教育版不支持的,有的博客提供的改注冊表的功能親測無效。所以windows上使用docker的基本條件就是保證操作系統是windows專業版。

安裝

首先開啟Hype-V

任務欄windows圖標上右鍵應用與功能—右邊欄程序與功能—左邊欄啟用或關閉Windows功能—選擇Hype-V並確定,重啟電腦后Hype-V功能就已經是開啟狀態的了。

安裝軟件

windows上的軟件安裝過程比較簡單,在docker官網上直接下載Docker for Windows並安裝就可以了,操作過程都是圖形界面,比較符合windows用戶的使用習慣

使用

windows上的docker使用邏輯與linux上有所不同,不能一鍵啟動容器,必須先啟動docker desktop才可以啟動具體的容器。啟動時間比較長,在docker desktop沒有啟動的情況下使用docker命令,或出現permission denied的報錯信息

docker啟動以后可以使用docker run hello-world命令來檢查自己是否安裝正確。

我們上文所說docker的目的之一是為了保證軟件的依賴關系,它與常見的VM相比,一個最大的不同就是它提供的dockerhub平台使別人已經配置好的鏡像可以供大家下載,這樣可以避免自己再去辛苦配置環境。

簡單解釋一下docker 容器和鏡像的概念,容器是由鏡像實例化而來,類比我們學習過的面向對象的概念,鏡像就是程序中定義的類,而容器是類實例化后的對象。

我們可以這樣得到一個鏡像

docker pull ubuntu:14.04
#下載一個基於ubuntu14.04的鏡像,在不指明下載地址的情況下,默認下載地址是docker hub

在鏡像的基礎上可以得到一個容器

docker run ubuntu:14.04
#會實例化一個容器,並給容器分配一個id

windows上使用docker的常用命令有(在powershell中)

#查看所有鏡像
docker images -q
#查看所有容器
docker ps -a
#查看所有運行中容器
docker ps
#進入容器
docker exec -it containerID /bin/bash
#停止所有容器
docker stop $(docker ps -q)
#刪除所有容器
docker rm $(docker ps -aq)
#刪除所有鏡像
docker rmi $(docker images -q)
#刪除某個鏡像
docker rmi imageID
#docker與宿主機互傳文件
#從docker到宿主機
docker cp containerName:containerpath/file.txt filepath
#從宿主機到docker
docker cp filepath containerName:containerpath/file.txt


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM