Docker學習筆記

2022-05-02 18:42:10 字數 2260 閱讀 8174

最近花了點時間學習了一下docker,發現docker還是挺好用的,學了後也在實際中使用到了,就是乙個靜態頁面需要跑在伺服器上檢視效果,如果用node跑的話還需要在專案中加上其他專案中沒有用到的東西,然後用nginx的話還需要寫個nginx的配置檔案,如果在你的資料夾裡面還需要設定許可權,都比較麻煩,然後我就直接用上了docker,在之前使用docker的時候也裝上過nginx的docker映象,然後就只需要一條命令建立乙個nginx的容器,然後把目標目錄掛載到nginx上就可以訪問到了,然後每次開啟只需要docker start一下就好了,非常方便。

docker映象(images)就可以理解成是乙個打包好的環境,和github一樣,docker也有乙個自己的hub,dockerhub,是乙個所有人儲存映象的地方,你可以獲取到別人的映象來使用比如說你可以搜尋nginx然後就可以看到搜尋項中的nginx,這是乙個官方的docker映象,比如windstormrage/nginx這種就是使用者自己上傳的映象,一般使用還是使用官方的比較安全,然後你也可以上傳你的映象。

docker容器(container)可以理解成是映象例項化出的乙個系統,你可以執行容器中的命令,然後也可以打自己本地的目錄掛載到容器對應位置,然後也可以把容器介面對映到本地上開啟。

我們就通過乙個小栗子來學習一下docker的操作,我這裡使用playdocker來操作,你可以用你的電腦來操作。

我們拉取到乙個nginx的映象

docker pull nginx
docker會自動從你的源(dockerhub)上找到名字為nginx的映象,然後拉取下來。

然後你可以通過命令來檢視你本地擁有的映象

docker images
擁有了乙個映象後你就可以執行它生成乙個容器

docker run -d -p 8360:80 nginx
其中-d是讓容器在後台執行,-p是把內部的埠對映到我們的主機上面,我們這裡是把nginx的80埠對映到了我們的8360埠。然後返回的雜湊值是我們當前的容器的id,使用這個id我們可以操作我們的容器。比如說我們可以通過

docker stop cf
其中cf是對應id的前幾位,他只要可以找到對應的容器就可以來停止這個容器,然後如果是使用的playdocker來操作的話你可以點選這裡來檢視對應埠的頁面

如果你用的是自己的電腦的話你可以開啟localhost:8360看到你nginx執行起來的頁面了。然後你可以通過

docker ps
檢視你執行中的容器

比如說我上面說的掛載專案就可以使用

docker run -p 8360:80 -v /html/demo:/usr/share/nginx/html -d nginx
這個應該就只能在本地嘗試了,你第一次掛載的時候docker會找你要許可權,你允許就好了

其中-v就是掛載,然後我的專案是在/html/demo上。然後你開啟localhost:8360就可以看見你demo目錄下的檔案了。

其實就是在你執行映象的時候可以加上你需要執行容器裡面的命令

docker run learn/tutorial apt-get install -y ping
docker ps -a
來找到你當前的容器,你修改了容器後可以通過commit命令來儲存你這次修改,他的儲存是生成乙個新的映象。

docker commit fc windstormrage/ping
其中的fc是你容器的id,然後後面跟著的是你的映象名稱,映象名稱最好是以你的dockehun的名稱加上/然後加上映象名組成,不然到後面你不能上傳,因為映象只能上傳到自己名字的空間下。

然後你可以通過run命令來執行你剛剛打包了的映象

docker run windstormrage/ping ping www.google.com
然後你需要知道的是你每次run都是建立了乙個新的容器,對你之前建立的容器是沒有影響的。

發布映象很簡單

docker push windstormrage/ping
注意的就是你的使用者名稱需要正確,不然會報錯。

其實docker映象一般是通過dockerfile來建立,我們這裡只是簡單的入門,暫時不涉及到自己手動來建立乙個映象,如果感興趣的可以看看後面的參考資料。

菜鳥教程

docker官方入門教程

docker學習筆記

1 docker依賴於linux核心,無法直接安裝在windows環境中,否則需要安裝docker toolbox 2 相關操作 docker create 建立乙個容器但是不啟動它 docker run 建立並啟動乙個容器 docker stop id 停止容器執行,傳送訊號sigterm doc...

Docker學習筆記

一 docker是什麼 docker是乙個開源的引擎,可以輕鬆的為任何應用建立乙個輕量級的 可移植的 自給自足的容器。就相當於書包可以裝書,水杯可以盛水。二 docker解決了什麼問題 我本地沒有問題啊 本地和線上的環境不一致問題,哪個哥們又寫死迴圈了 其他專案的出錯不影響你本身的專案 雙十一伺服器...

docker學習筆記

1.怎麼給執行中的docker容器新增新的埠 解決 1 獲得容器ip docker inspect container name grep ipaddress 2 iptable埠 將容器的8000埠對映到主機的8001埠 iptables tnat adocker ptcp dport 8001 ...