docker的安裝和使用詳解!

docker是什麼?

Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從Apache2.0協議開源。
Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。
容器是完全使用沙箱機制,相互之間不會有任何接口,更重要的是容器性能開銷極低。

爲什麼要用docker?

在沒有用docker之前,我們需要在本地,測試,線上部署相同的環境,相同的軟件每個環境都要安裝一次,並且每來一個新同事,相同的環境有要重新安裝一遍,很麻煩且過於重複。docker可以完美的解決這個問題。
用docker之後我們只需要在本地,測試,線上分別安裝相同的docker,然後在本地搭建環境,將搭建好的環境容器生成docker鏡像,只要將這個docker鏡像提供給測試和線上即可構建出相同的環境,在代碼部署上我們可以利用docker數據卷將本地項目目錄文件直接掛載到測試環境中

docker在windows上的安裝

Docker for Windows是一個Docker Community Edition(CE)應用程序。Docker for Windows安裝包包含了在Windows系統上運行Docker所需的一切。如果你不想裝虛擬機,想直接在你的Windows操作系統中安裝與學習使用docker,那麼你首先得查看你的系統是否滿足Docker for Windows的安裝與使用要求。

  1. 1. Docker for Windows的當前版本運行在64位Windows 10 Pro,專業版、企業版和教育版(1607年紀念更新,版本14393或更高版本)上。Ps:家庭版是不行的,如果你是家庭版,那麼一是升級到專業版,破解專業版推薦個地址:http://blog.csdn.net/SONGCHUNHONG/article/details/78006389 ,二是安裝Docker Toolbox,自行網上百度http://blog.csdn.net/tina_ttl/article/details/51372604

  2. 2. 如果你滿足Docker for Windows的環境條件了,那麼首先檢查電腦的虛擬化開啓了沒有:進入任務管理器(ctrl+alt+delete),點擊性能->cpu ,查看虛擬化是否已啓用,如果虛擬化是已禁用,那麼你需要重啓電腦進入bios開啓虛擬化(我們的發的筆記本cpu都是支持虛擬化的,重啓時進入bios按esc -> 再按f12 -> 去開啓虛擬化)

    3. 開啓虛擬化重啓後,進入任務管理器看虛擬化是否已啓用。 

    4. 然後再是進入電腦的控制面板->程序->啓用或關閉Windows功能->把Hyper-v勾上,啓用後電腦會重啓,後面就可以下載並安裝Docker for Windows了。 

docker在mac上的安裝

在docker官網上我們可以直接下載Docker Desktop (Mac) 可直接在https://hub.docker.com/editions/community/docker-ce-desktop-mac下載(需要登錄),下載後雙擊執行docker.dmg正常安裝即可
啓動docker後在系統菜單欄我們可以看到docker標誌,說明docker安裝成功

docker鏡像加速

參考http://guide.daocloud.io/dcs/daocloud-9153151.html#docker-toolbox設置鏡像加速

docker基本命令

// 列出本地已有鏡像docker images// 從遠端下載鏡像docker pull <image name>// 使用鏡像創建並啓動一個容器(若本地沒有該鏡像,則會先從遠端下載,每次run都會生成一個容器,嗯,輕量~)docker run hub.c.163.com/library/hello-world:latest//列出正在運行的容器docker ps// 列出所有容器(包括Exited)docker ps -a// 啓動指定的容器docker start <container id>// 停止指定的容器docker stop <container id>// 停止所有運行中的容器docker stop $(docker ps -q)// 刪除指定容器docker rm <container id>//刪除所有容器docker rm $(docker ps -aq)//停止並刪除容器docker stop $(docker ps -q) & docker rm $(docker ps -aq)// 刪除指定鏡像(刪除鏡像前須先停止並刪除容器)docker rmi <image id>// 重啓容器docker restart <container id>// 創建一個新的容器並運行一個命令docker run [OPTIONS] IMAGE [COMMAND] [ARG...]-a stdin: 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項;-d: 後臺運行容器,並返回容器ID;-i: 以交互模式運行容器,通常與 -t 同時使用;-p: 端口映射,格式爲:主機(宿主)端口:容器端口-t: 爲容器重新分配一個僞輸入終端,通常與 -i 同時使用;--name="nginx-lb": 爲容器指定一個名稱;--dns 8.8.8.8: 指定容器使用的DNS服務器,默認和宿主一致;--dns-search example.com: 指定容器DNS搜索域名,默認和宿主一致;-h "mars": 指定容器的hostname;-e username="ritchie": 設置環境變量;--env-file=[]: 從指定文件讀入環境變量;--cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運行;-m :設置容器使用內存最大值;--net="bridge": 指定容器的網絡連接類型,支持 bridge/host/none/container: 四種類型;--link=[]: 添加鏈接到另一個容器;--expose=[]: 開放一個端口或一組端口;
// 交互運行docker run -it centos /bin/bash   /bin/bash 是進入到linux中命令行// 進入容器docker exec -it centos /bin/bash// 容器拷貝到主機docker cp <container id>:文件路徑 主機目標路徑// 主機拷貝到容器docker cp 主機文件路徑 <container id>:文件路徑//查看容器IPdocker inspect -f '{{.NetworkSettings.IPAddress}}' centos

win7上文件以數據卷的形式掛載到docker容器中

1.先設置 win7 到 VirtualBox 中 docker 用的那個虛擬機的共享文件夾
 填寫好共享文件夾路徑和名稱。如:共享文件夾路徑:E:\ 共享文件夾名稱: e
 然後勾選自動掛載和固定分配
2.重啓 docker
3. docker run -it -v /test:/var/www myimage /bin/bash

製作鏡像

在上面的鏡像容器中我們可以搭建自己所需要的各種環境,搭建好後可將這個更改後的容器打包成一個鏡像,並上傳到鏡像倉庫供大家使用
在搭建好環境的容器中退出時我們應當使用ctrl+p+q快捷鍵,而不是exit退出,因爲這樣直接退出會關閉當前容器
docker commit :從容器創建一個新的鏡像。

docker commit -a "name" -m "this is profile" <container id> imageName

這裏以阿里云爲例,將鏡像推送到Registry​​​​​​​

$ sudo docker login --username=jesse131 registry.cn-shenzhen.aliyuncs.com$ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/mirror-study/study:[鏡像版本號]$ sudo docker push registry.cn-shenzhen.aliyuncs.com/mirror-study/study:[鏡像版本號]

從網上拉取上傳的鏡像

$ sudo docker pull registry.cn-shenzhen.aliyuncs.com/mirror-study/study:[鏡像版本號]

如果不想通過網絡拉去鏡像也可以通過U盤拷貝鏡像

導出鏡像到本地

docker save <container id> -o d:/www/centos.tar

加載本地鏡像

docker load -i d:/www/centos.tar

在PowerShell中設置 tab鍵自動補全(其實用的都是cmd.exe)

  1. 啓動一個的PowerShell(即以管理員身份運行)。搜索PowerShell,右鍵單擊,然後選擇以管理員身份運行。在PowerShell提示符下鍵入: 
    Set-ExecutionPolicy RemoteSigned

  2. 檢查策略設置是否正確,運行:get-executionpolicy 
    應該返回RemoteSigned。

  3. 安裝posh-dockerPowerShell模塊以自動完成Docker命令,鍵入:Install-Module posh-docker或者,要僅爲當前用戶安裝模塊,鍵入: 
    Install-Module -Scope CurrentUser posh-docker

  4. 安裝完成後,只能爲當前PowerShell啓用自動完成功能,輸入:Import-Module posh-docker

  5. 爲了在所有PowerShell會話中保持Tab完成狀態$PROFILE,請在PowerShell提示符處輸入:

if (-Not (Test-Path $PROFILE)) { New-Item $PROFILE –Type File –Force}Add-Content $PROFILE "`nImport-Module posh-docker"

這將創建一個$PROFILE如果不存在,並將此行添加到文件中: 
Import-Module posh-docker 
要檢查文件是否已正確創建,或只需手動編輯,請在PowerShell中鍵入以下內容: 
Notepad $PROFILE 
打開一個新的PowerShell會話。現在,當你鍵入的前幾個字母后按Tab鍵,Docker命令(如開始,停止,運行及其選項)以及容器和映像名稱現在都應該自動完成。 

瞭解集羣

swarm是運行Docker並加入到一個集羣中的一組機器。但是現在它們將由羣集管理器在羣集上執行。羣體中的機器可以是物理的或虛擬的。加入羣體後,他們被稱爲節點。 
Swarm管理人員可以使用多種策略來運行容器,比如“最空的節點”(emptiest node) - 它使用容器填充最少使用的機器。或“全局”,這確保了每臺機器只能得到指定容器的一個實例。您可以指示swarm manager在Compose文件中使用這些策略。 
羣體管理者是羣體中唯一可以執行你的命令的機器,或者授權其他機器作爲工作者加入羣體。工人提供能力,並沒有權力告訴任何其他機器可以做什麼和不可以做什麼。 
到目前爲止,之前都是在本地機器上以單主機模式使用Docker。但是Docker也可以切換到羣集模式,這就是使用羣集的原因。啓用羣模式使當前機器成爲羣管理器。則Docker將運行您正在管理的羣集上執行的命令,而不僅僅是在當前的機器上。

​​​​​​​

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章