1、入門介紹nginx
Docker是一個開源引擎,相似於一個集裝箱,開發者經過它能夠爲任何應用建立一個輕量級、環境無關可移植的容器。開發者在本地編譯測試過的容器能夠在不一樣的環境中部署。git
一般適用於以下場景:github
1 - web應用的自動化打包和發佈
2 - 自動化測試和持續集成、發佈
3 - 在服務型環境中部署和調整數據庫或者其餘的後臺應用
4 - 從頭編譯或者擴展示有的OpenShift或者Cloud Foundary平臺搭建本身的PaaS環境web
Docker系統組成docker
docker服務端+docker客戶端
docker服務端:一個後臺的服務進程,負責管理全部的容器
docker客戶端:docker服務端的遠程控制器,負責控制docker的服務端進程
大部分狀況下docker服務端和客戶端運行在同一臺機器數據庫
docker鏡像與docker容器的關係centos
docker鏡像是用於建立docker容器的模板,二者的關係相似於對象與類的關係xcode
Docker鏡像(Images) : 用於建立docker容器的模板
Docker容器(Container): 一組封裝了應用及其所需環境的沙箱,能夠移植到其餘平臺,環境無關
Docker客戶端(Client): 經過命令行或者其餘工具使用Docker API與Docker的守護進程(即服務端)通訊
Docker主機(Host):一個物理或者虛擬的機器用於執行Docker守護進程與容器
Docker倉庫(Registry): Docke倉庫用於保存鏡像,能夠理解爲代碼控制中的代碼倉庫,Docker Hub(https://hub.docker.com)提供了龐大的鏡像集合供咱們使用
Docker Machine : Docker Machine是一個簡化Docker安裝的命令行工具,經過一個簡單的命令行,可在相應的平臺安裝Dockerruby
2、Docker安裝
1)MacOS環境安裝docker
MacOS下安裝方式有兩種
Homebrew安裝
1 - 首先,咱們須要安裝Homebrew這款包管理工具,在終端執行如下命令xcode-select --install;
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"下載
2 - 執行brew cask install docker安裝docker
3 - 載入Docker點擊Next輸入macOS密碼網絡
2)手動下載安裝
1 - 下載連接https://download.docker.com/mac/stable/Docker.dmg
2 - 下載成功點擊圖標,在安裝成功的界面,點擊」Got it!「關閉窗口
第一次使用docker須要到cloud.docker.com網站註冊一個帳號
3、docker配置國內鏡像源
由於使用Docker須要從官方獲取鏡像,網絡傳輸很是耗時常常發生斷線,所以最好配置國內鏡像源拉取鏡像速度能夠獲得極大的提高。
國內鏡像源列表
DaoCloud: http://fab34f18.m.daocloud.io(須要先註冊帳號而後獲取本身的加速地址)
網易加速器: http://hub-mirror.c.163.com
官方中國加速器: https://registry.docker-cn.com
ustc的鏡像:https://docker.mirrors.ustc.edu.cn
3、Docker的基本命令
鏡像操做
1 - 從docker hub官方鏡像倉庫拉取鏡像
docker pull busybox:latest
2 - 推送本地鏡像到鏡像倉庫
1)docker tag busybox daocloud.io/weidai_zm/busybox:latest
latest:版本
daocloud.io/weidai_zm/: 遠程倉庫
busybox: 本地鏡像
2)docker push daocloud.io/weidai_zm/busybox:latest
3 - 查看本地鏡像列表
docker images
4 - 查找鏡像倉庫的某個鏡像
docker search centos/nginx
5 - 查看構建鏡像所用過的命令
docker history busybox:latest
6 - 刪除鏡像
docker rmi busybox:latest
容器操做
container爲容器建立時指定的name或者系統分配的name
1 - 建立並啓動容器,建立交互式僞終端
docker run -it busybox
2 - 建立並啓動測試容器(容器在後臺運行)
docker run -d busybox
3 - 建立容器可是不運行它
docker create --name mybusybox busybox
4 - 在運行的容器中執行命令
docker exec -it container echo 'hello'
5 - 鏈接到正在運行的中的容器
docker attach --sig-proxy=false container
6 - 刪除一個或者多個容器
docker rm [OPTION] container1[...containerN]
OPTION說明:
-f: 經過SIGKILL信號強制刪除一個運行中的容器
docker rm -f db
-l: 移除容器間的網絡鏈接,而非容器自己
eg: docker rm -l db
db - 鏈接名
-v: 移除與容器,並刪除容器掛載的數據卷
eg: docker rm -v busybox
7 - 殺掉一個正在運行中的容器
docker kill -s KILL mybusybox
8 - 啓動一個或者幾個已經被中止的容器
docker start container
9 - 中止一個運行中的容器
docker stop container
10 - 重啓容器
docker restart container
11 - 暫停容器中的全部進程
docker pause container
12 - 恢復容器中的全部進程
docker unpause container
獲取容器相關信息
1 - 顯示狀態爲運行的容器
docker ps
2 - 顯示全部容器,包括運行中(Up)和退出的(Exited)
docker ps -a
3 - 深刻容器內部獲取容器的全部信息,獲取特定信息
docker inspect container
根據元數據結構命令以下:
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container #獲取容器IP地址
4 - 查看容器的日誌
docker logs container