1. 程式人生 > >docker下載安裝

docker下載安裝

docker官網的下載有多噁心我就不說了,在這裡推薦一個國內的軟體下載平臺(使用百度雲網盤下載):https://oomake.com/download/docker-windows

docker安裝需要window server 2016以上。

window 2005更新 http://blog.sina.com.cn/s/blog_a0c06a350102z0z7.html 直接windows update   docker安裝:首先開啟windows的hyper-v,然後直接點選下載的應用程式,啟動時它會先檢查你的windows系統是否滿足條件,如果不滿足,他會退出安裝。如果滿足,他會開始安裝。【安裝時請退出360等軟體】,安裝過程中會多次重啟計算機。
  安裝完成後可用git bsah執行:$ docker run hello-world 結果如下:
  寫在前面的話: 實際上docker只能在linux系統下執行,Windows下執行必要要支援Hyper-v( 注:windows專業版本才有這個功能)。安裝docker的時候會自動建立一個虛擬的linux系統,後續的其他操作實際上是間接使用這個虛擬系統進行的。
docker是什麼? Docker 是一個開源的應用容器引擎,基於  Go 語言 並遵從Apache2.0協議開源。 Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。 容器是完全使用沙箱機制,相互之間不會有任何介面(類似 iPhone 的 app),更重要的是容器效能開銷極低。   docker的應用場景:
  • Web 應用的自動化打包和釋出。
  • 自動化測試和持續整合、釋出。
  • 在服務型環境中部署和調整資料庫或其他的後臺應用。
  • 從頭編譯或者擴充套件現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。
  docker架構:
  • docker是典型的c/s架構【類似於網易雲】,使用遠端API來管理和建立Docker容器。
  • Docker容器通過Docker映象來建立
  • 容器與映象的關係類似於面向物件中的物件與類。

daemon:守護程序 registries:註冊處
細細體味映象於容器之間的關係。
  對docker有個瞭解之後,開始實踐了,實踐出真知: 對於最早在git bash裡執行的$ docker run hello-world是什麼意思? -docker允許你在容器裡執行應用程式,使用docker run命令來在容器內執行一個應用程式。 也就是說這個命令是執行一個應用程式,這個應用程式名叫hello-world。我們詳細看一個例子   例子:對下面這個命令進行解析: docker run ubuntu:15.10 /bin/echo "Hello world" 【windos不可行】 各個引數解析:
  • docker: Docker 的二進位制執行檔案。
  • run:與前面的 docker 組合來執行一個容器。
  • ubuntu:15.10指定要執行的映象,Docker首先從本地主機上查詢映象是否存在,如果不存在,Docker 就會從映象倉庫 Docker Hub 下載公共映象。
  • /bin/echo "Hello world": 在啟動的容器裡執行的命令
以上命令完整的意思可以解釋為:Docker 以 ubuntu15.10 映象建立一個新容器,然後在容器裡執行 bin/echo "Hello world",然後輸出結果。 類比於hello-world,在git bash中輸出也可以看到,docker首先從本地主機上查詢hello-world映象是否存在,顯然是不存在的,docker從映象倉庫裡下載了公共的hello-world映象,然後運行了這個映象,最後輸出結果為:Hello from Docker!     下面我們來學習一些命令:
  • 檢視本地有哪些映象
docker images 可以看到我們最開始下載的hello-world  
  • 檢視當前正在執行的容器
docker ps   由於hello-world已經執行結束,所以當前沒有可執行的容器了。docker ps -a檢視所有執行的容器包括已經停止的。
  • 檢視某應用程式日誌
我剛剛下載了最新的windows映象,並執行了PowerShell 即:PS C:\> docker run -it microsoft/windowsservercore powershell docker幫我下載了最新的windows映象,下載完後執行了powershell命令幫我啟動了powershell命令列工具。我在它啟動的命令列工具裡輸入:systeminfo 檢視當前下載的windows映象的系統資訊。輸出如下:   好了,現在我們來檢視一下該應用程式(windows)輸出的日誌資訊: 首先我們看一下當前那些映象在執行:docker ps -a 檢視所有容器 你可以看到之前的hello-world不過它的狀態是exited,還有一個就是剛才我下載的window映象。  
  • 檢視某容器內部標準輸出:
docker logs [ID或名字] || docker logs -f [ID或名字] -f表示 像使用 tail -f 一樣來輸出容器內部的標準輸出。 docker logs -f ce005d531a93   可以看到日誌裡輸出了容器內執行的情況,而且還有我輸入的systeminfo命令
  • 檢視某容器內的程序
docker top [ID或名稱] 如檢視剛才windows容器裡所有程序:docker top ce005d531a93  
  • 檢查某應用程式
使用 docker inspect 來檢視 Docker 的底層資訊。它會返回一個 JSON 檔案記錄著 Docker 容器的配置和狀態資訊 dockers inspect ce005d531a93  
  • 停止、重啟容器
-停止:docker stop [ID/NAME] -重啟:docker start [ID/NAME]
  • 移除容器 docker rm [ID/NAME]
刪除容器時,容器必須是停止狀態,否則會報如下錯誤: [email protected]:~$ docker rm wizardly_chandrasekhar Error response from daemon: You cannot remove a running container bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85. Stop the container before attempting removal or force remove 比如我們移除hello-world容器 docker rm 377e748bef63 將返回移除容器的id
  • 下載最新的映象 docker pull [ID/NAME]
地址: https://hub.docker.com/_/ubuntu/ 在執行該命令前,你首先要確保已經登陸你的docker hub賬號和密碼,你可以使用docker login命令在控制檯進行登陸 當我們在本地主機上使用一個不存在的映象時 Docker 就會自動下載這個映象。如果我們想預先下載這個映象,我們可以使用 docker pull 命令來下載它。類不類似於git命令 git clone,又像maven把倉庫裡的東西pull到本地。
  • 查詢映象 docker search httpd
  -NAME:映象倉庫源的名稱 -DESCRIPTION:映象的描述 -OFFICIAL:是否docker官方釋出
  • 更新映象
更新映象之前,我們需要使用舊的映象來建立一個容器。 $ docker run -t -i ubuntu:15.10 /bin/bash 返回容器ID:e218edb10161 在執行的容器內使用 apt-get update 命令進行更新。相當於$ docker run -t -i ubuntu:15.10 /bin/bash apt-get update 在完成操作之後,輸入 exit命令來退出這個容器。 此時ID為e218edb10161的容器,是按我們的需求更改的容器。我們可以通過命令 docker commit來提交容器副本。 $ docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2 f返回新映象的ID:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8 各個引數說明:
  • -m:提交的描述資訊
  • -a:指定映象作者
  • e218edb10161:容器ID
  • runoob/ubuntu:v2:指定要建立的目標映象名
我們可以使用 docker images 命令來檢視我們的新映象 runoob/ubuntu:v2:
  • 構建映象
比如說你新建了一個web工程,想以後不管在哪臺機器上,只要這臺機器運行了docker,就可以在這臺機器上部署你的web工程,那麼你首先要把你的web工程釋出成映象然後push到你自己的遠端的映象倉庫,以後在其他地方用直接pull下來就可以用了。怎麼構建映象?    
  以上是來自菜鳥教程的學習,更多正在學習中....   https://github.com/Tesseract-MI/Tesseract-MI http://prostatecancer.ai/studylist 推薦學習網站: API: https://docs.docker.com/docker-for-windows/install/ https://blog.csdn.net/bskfnvjtlyzmv867/article/details/81044217 https://blog.csdn.net/S_gy_Zetrov/article/details/78161154