快速構建項目神器-Docker

篇提到了中小企業快速構建雲上服務,本篇繼續以開發的視角介紹一個容器化工具:Docker,以下部分摘自百度百科!本文算是一篇技術科普文,對實操上沒有太大價值,但是可以告訴你Docker能用在什麼地方,怎麼使用。

序:上篇提到了中小企業快速構建雲上服務,本篇繼續以開發的視角介紹一個容器化工具:Docker,以下部分摘自百度百科!本文算是一篇技術科普文,對實操上沒有太大價值,但是可以告訴你Docker能用在什麼地方,怎麼使用。

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

本篇是下一篇的引用,爲了快速調用開發環境配置,和企業內部環境的快速部署。

Docker能做什麼?

Docker是非常強大的服務容器化工具,提供容器的沙箱管理控制,隔離應用關係,在開發中使用非常常見,優點是跨平臺環境統一,可以支持多語言多環境的調整和鏡像部署,在資源較少的情況下可以通過容器實現集羣化的部署測試。比如mysql集羣,redis集羣,控件分離等等。

我本機的環境是MAC系統,拿本身環境爲例,我將進行docker及docker-compose的演示安裝,win7及win10的安裝與mac安裝上區別較大,但是使用上大同小異,本文僅做爲參考。

Docker的安裝:

打開Docker的官網下載頁面,下載前需要進行帳號登陸

 

登陸成功之後進行選擇

 

下載時間比較漫長,Docker的安裝包約800多m,下載之後直接安裝即可。安裝之後啓動即可。

檢查docker的啓動狀態

docker images

當提示如下警告時,因爲docker服務未啓動,
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

在mac系統下結束docker-desktop服務,重新開啓並start即可,此時docker就運行在你的機器之上了。

 

有此小綠圖標就是運行成功了

Docker的鏡像源一般在國外,國內也有一些鏡像,可以考慮直接使用,使用方式參考如下。

鏡像加速

鑑於國內網絡問題,後續拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來解決,我使用的是網易的鏡像地址:http://hub-mirror.c.163.com

在任務欄點擊 Docker for mac 應用圖標 -> Perferences… -> Daemon -> Registry mirrors。在列表中填寫加速器地址即可。修改完成之後,點擊 Apply & Restart 按鈕,Docker 就會重啓並應用配置的鏡像地址了。

 

轉於網絡

Docker-Compose是一個多容器的管理工具,在mac下最簡單的安裝方法,使用

pip install docker-compose

就直接可以進行安裝了,不用太複雜的配置,下一篇我們將基於LNMP快速且有規劃性的搭建本地開發環境。

轉一些docker常用的命令,有興趣可以先熟悉一下:

查看容器

查看你已經下載好的鏡像
docker images

查找鏡像

docker search XX

下載鏡像

docker pull xx

刪除鏡像

docker rmi xx

開始

docker run 你的鏡像

看日誌

docker logs 你的容器

停止一個容器示例

docker stop 你的容器

查看容器狀態

docker stats 你的容器

 

Docker-Compose常用命令-轉自網絡

1、Docker-Compose命令格式

docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]

命令選項如下:
-f,–file FILE指定Compose模板文件,默認爲docker-compose.yml,可以多次指定。
-p,–project-name NAME指定項目名稱,默認將使用所在目錄名稱作爲項目名。
-x-network-driver 使用Docker的可拔插網絡後端特性(需要Docker 1.9+版本)
-x-network-driver DRIVER指定網絡後端的驅動,默認爲bridge(需要Docker 1.9+版本)
-verbose輸出更多調試信息
-v,–version打印版本並退出

2、docker-compose up

docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]

選項包括:
-d 在後臺運行服務容器
–no-color 不使用顏色來區分不同的服務的控制輸出
–no-deps 不啓動服務所鏈接的容器
–force-recreate 強制重新創建容器,不能與–no-recreate同時使用
–no-recreate 如果容器已經存在,則不重新創建,不能與–force-recreate同時使用
–no-build 不自動構建缺失的服務鏡像
–build 在啓動容器前構建服務鏡像
–abort-on-container-exit 停止所有容器,如果任何一個容器被停止,不能與-d同時使用
-t, –timeout TIMEOUT 停止容器時候的超時(默認爲10秒)
–remove-orphans 刪除服務中沒有在compose文件中定義的容器
–scale SERVICE=NUM 設置服務運行容器的個數,將覆蓋在compose中通過scale指定的參數
docker-compose up
啓動所有服務
docker-compose up -d
在後臺所有啓動服務
-f 指定使用的Compose模板文件,默認爲docker-compose.yml,可以多次指定。
docker-compose -f docker-compose.yml up -d

3、docker-compose ps

docker-compose ps [options] [SERVICE...]
docker-compose ps
列出項目中目前的所有容器

4、docker-compose stop

docker-compose stop [options] [SERVICE...]
選項包括:
-t, –timeout TIMEOUT 停止容器時候的超時(默認爲10秒)
docker-compose stop
停止正在運行的容器,可以通過docker-compose start 再次啓動

5、docker-compose -h

docker-compose -h
查看幫助

6、docker-compose down

docker-compose down [options]
停止和刪除容器、網絡、卷、鏡像。
選項包括:
–rmi type,刪除鏡像,類型必須是:all,刪除compose文件中定義的所有鏡像;local,刪除鏡像名爲空的鏡像
-v, –volumes,刪除已經在compose文件中定義的和匿名的附在容器上的數據卷
–remove-orphans,刪除服務中沒有在compose中定義的容器
docker-compose down
停用移除所有容器以及網絡相關

7、docker-compose logs

docker-compose logs [options] [SERVICE...]
查看服務容器的輸出。默認情況下,docker-compose將對不同的服務輸出使用不同的顏色來區分。可以通過–no-color來關閉顏色。
docker-compose logs
查看服務容器的輸出

8、docker-compose build

docker-compose build [options] [--build-arg key=val...] [SERVICE...]
構建(重新構建)項目中的服務容器。
選項包括:
–compress 通過gzip壓縮構建上下環境
–force-rm 刪除構建過程中的臨時容器
–no-cache 構建鏡像過程中不使用緩存
–pull 始終嘗試通過拉取操作來獲取更新版本的鏡像
-m, –memory MEM爲構建的容器設置內存大小
–build-arg key=val爲服務設置build-time變量
服務容器一旦構建後,將會帶上一個標記名。可以隨時在項目目錄下運行docker-compose build來重新構建服務

9、docker-compose pull

docker-compose pull [options] [SERVICE...]
拉取服務依賴的鏡像。
選項包括:
–ignore-pull-failures,忽略拉取鏡像過程中的錯誤
–parallel,多個鏡像同時拉取
–quiet,拉取鏡像過程中不打印進度信息
docker-compose pull
拉取服務依賴的鏡像

10、docker-compose restart

docker-compose restart [options] [SERVICE...]
重啓項目中的服務。
選項包括:
-t, –timeout TIMEOUT,指定重啓前停止容器的超時(默認爲10秒)
docker-compose restart
重啓項目中的服務

11、docker-compose rm

docker-compose rm [options] [SERVICE...]
刪除所有(停止狀態的)服務容器。
選項包括:
–f, –force,強制直接刪除,包括非停止狀態的容器
-v,刪除容器所掛載的數據卷
docker-compose rm
刪除所有(停止狀態的)服務容器。推薦先執行docker-compose stop命令來停止容器。

12、docker-compose start

docker-compose start [SERVICE...]
docker-compose start
啓動已經存在的服務容器。

13、docker-compose run

docker-compose run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]
在指定服務上執行一個命令。
docker-compose run ubuntu ping www.baidu.com
在指定容器上執行一個ping命令。

14、docker-compose scale

docker-compose scale web=3 db=2
設置指定服務運行的容器個數。通過service=num的參數來設置數量

15、docker-compose pause

docker-compose pause [SERVICE...]
暫停一個服務容器

16、docker-compose kill

docker-compose kill [options] [SERVICE...]
通過發送SIGKILL信號來強制停止服務容器。 
支持通過-s參數來指定發送的信號,例如通過如下指令發送SIGINT信號:
docker-compose kill -s SIGINT

17、dokcer-compose config

docker-compose config [options]
驗證並查看compose文件配置。
選項包括:
–resolve-image-digests 將鏡像標籤標記爲摘要
-q, –quiet 只驗證配置,不輸出。 當配置正確時,不輸出任何內容,當文件配置錯誤,輸出錯誤信息
–services 打印服務名,一行一個
–volumes 打印數據卷名,一行一個

18、docker-compose create

docker-compose create [options] [SERVICE...]
爲服務創建容器。
選項包括:
–force-recreate:重新創建容器,即使配置和鏡像沒有改變,不兼容–no-recreate參數
–no-recreate:如果容器已經存在,不需要重新創建,不兼容–force-recreate參數
–no-build:不創建鏡像,即使缺失
–build:創建容器前,生成鏡像

19、docker-compose exec

docker-compose exec [options] SERVICE COMMAND [ARGS...]
選項包括:
-d 分離模式,後臺運行命令。
–privileged 獲取特權。
–user USER 指定運行的用戶。
-T 禁用分配TTY,默認docker-compose exec分配TTY。
–index=index,當一個服務擁有多個容器時,可通過該參數登陸到該服務下的任何服務,例如:docker-compose exec –index=1 web /bin/bash ,web服務中包含多個容器

20、docker-compose port

docker-compose port [options] SERVICE PRIVATE_PORT
顯示某個容器端口所映射的公共端口。
選項包括:
–protocol=proto,指定端口協議,TCP(默認值)或者UDP
–index=index,如果同意服務存在多個容器,指定命令對象容器的序號(默認爲1)

21、docker-compose push

docker-compose push [options] [SERVICE...]
推送服務依的鏡像。
選項包括:
–ignore-push-failures 忽略推送鏡像過程中的錯誤

22、docker-compose stop

docker-compose stop [options] [SERVICE...]
顯示各個容器運行的進程情況。

23、docker-compose unpause

docker-compose unpause [SERVICE...]
恢復處於暫停狀態中的服務。

24、docker-compose version

docker-compose version
打印版本信息。

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