1. 程式人生 > 實用技巧 >Docker入門安裝教程

Docker入門安裝教程

Docker核心概念

映象(image) Docker 映象(Image)就是一個只讀的模板。例如:一個映象可以包含一個完整的作業系統環境,裡面僅安裝了 Apache 或使用者需要的其它應用程式。映象可以用來建立 Docker 容器,一個映象可以建立很多容器。Docker 提供了一個很簡單的機制來建立映象或者更新現有的映象,使用者甚至可以直接從其他人那裡下載一個已經做好的映象來直接使用。

倉庫(repository) 倉庫(Repository)是集中存放映象檔案的場所。有時候會把倉庫和倉庫註冊伺服器(Registry)混為一談,並不嚴格區分。實際上,倉庫註冊伺服器上往往存放著多個倉庫,每個倉庫中又包含了多個映象,每個映象有不同的標籤(tag)。

倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式。最大的公開倉庫是 Docker Hub,存放了數量龐大的映象供使用者下載。國內的公開倉庫包括 時速雲 、網易雲 等,可以提供大陸使用者更穩定快速的訪問。當然,使用者也可以在本地網路內建立一個私有倉庫。

當用戶建立了自己的映象之後就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一臺機器上使用這個映象時候,只需要從倉庫上 pull 下來就可以了。

Docker 倉庫的概念跟 Git 類似,註冊伺服器可以理解為 GitHub 這樣的託管服務。

容器(container) Docker 利用容器(Container)來執行應用。容器是從映象建立的執行例項。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。可以把容器看做是一個簡易版的 Linux 環境(包括root使用者許可權、程序空間、使用者空間和網路空間等)和執行在其中的應用程式。

容器的定義和映象幾乎一模一樣,也是一堆層的統一視角,唯一區別在於容器的最上面那一層是可讀可寫的。

常用命令

 顯示版本號
docker --versions

顯示映象
docker images

構建映象

sudo docker build -t 'myflask' .

儲存映象 
docker save -o /home/dyufei/tensorflow.tar tensorflow/tensorflow 
或者 docker save tensorflow/tensorflow > /home/dyufei/tensorflow.tar

載入映象
docker load -i 'c:/123/tensorflow.tar’

執行容器
sudo docker run -it --rm -v  /Users/liuyue/wodfan/work/myflask:/Project/myflask -p 5000:5000 myflask

docker run -it --rm -p 5000:5000 -v  /Users/liuyue/wodfan/work/myflask:/Project/myflask myflask

後臺執行

sudo docker run -d -p 5000:5000 --name test-flask-1 myflask

登入系統 映象編號
docker run -ti 6866
docker run -it centos /bin/bash

進入映象並且開啟終端
docker exec -it mynginx /bin/bash
 
#如果出現任何關於node依賴的問題導致服務無法啟動,執行npm install無法解決的,則安裝rimraf,然後進入專案目錄下,執行rimraf node_modules 刪除後,重新執行 npm install 安裝依賴;刪除node_modules npm install rimraf -g rimraf node_modules 

安裝

由於安裝過git,我取消了git的安裝,啟動Docker Quickstart Terminal失敗,缺少快捷方式:

右鍵屬性,修改目標中git的路徑

啟動Docker Quickstart Terminal一直在下載boot2docker.iso失敗,由於它是從github上下載的比較慢,有2種解決方案:1. 複製下載的github地址,自己下載,然後複製到C:\Users\[你自己的電腦賬號]\.docker\machine\cache2. 直接複製你docker toolbox下的檔案到上面的地址,然後斷網啟動

簡單使用


安裝完成之後在桌面上有三個軟體

  • 下載本地的workflow.tar檔案

  • docker info #檢視資訊

  • 展示本地的所有映象

  • 建立映象容器並執行

  • 展示所有容器

  • 開啟守護程序

  • 停止服務

  • 強制刪除

注意:每次執行docker run -it -p 80:80 a580a都會建立一個容器,如果想執行上次建立的容器,可以執行docker start containId,containId為docker ps 查出的id。