Dokcer 簡介java
Docker是一個用於開發,交付和運行應用程序的開放平臺。Docker可以將應用程序與基礎架構分開,從而能夠快速交付軟件。藉助Docker能夠與管理應用程序相同的方式來管理基礎架構。經過利用Docker的方法來快速交付,測試和部署代碼,能夠大大減小編寫代碼和在生產環境中運行代碼之間的延遲。linux
Docker 有哪些優點nginx
一、快速、一致地交付應用程序docker
Docker簡化了開發生命週期,容許開發人員使用本地容器在標準化的環境中工做,本地容器能夠提供應用程序和服務。容器對於持續集成和持續交付(CI/CD)工做流很是有用。vim
二、響應式部署與擴展centos
Docker基於容器的平臺容許高度可移植的工做負載。Docker的可移植性和輕量級的特性使得能夠輕鬆地動態管理工做負載,讓運維人員能夠根據業務需求指示實時擴展或拆除應用程序和服務。緩存
三、在同一硬件上運行更多工做負載bash
Docker是輕量級和快速的。它爲基於管理程序的虛擬機提供了一種可行的、經濟有效的替代方案,所以您可使用更多的計算能力來實現您的業務目標。Docker很是適合於高密度環境和須要使用更少資源完成更多工做的中小型部署。網絡
Docker 架構圖架構
Docker daemon(Docker守護進程):
Docker守護程序偵聽Docker API請求並管理Docker對象,例如圖像,容器,網絡和卷。守護程序還能夠與其餘守護程序通訊以管理Docker服務。
Client( Docker客戶端):
Docker客戶端是 Docker的用戶界面,它能夠接受用戶命令和配置標識,並與 Docker daemon通訊。圖中, docker build等都是 Docker的相關命令。
Images( Docker鏡像):
Docker鏡像是一個只讀模板,它包含建立 Docker容器的說明。它和系統安裝光盤有點像,使用系統安裝光盤能夠安裝系統,同理,使用Docker鏡像能夠運行 Docker鏡像中的程序。
Container(容器):
容器是鏡像的可運行實例。鏡像和容器的關係有點相似於面向對象中,類和對象的關係。可經過 Docker API或者 CLI命令來啓停、移動、刪除容器。
Registry:
Docker Registry是一個集中存儲與分發鏡像的服務。構建完 Docker鏡像後,就可在當前宿主機上運行。但若是想要在其餘機器上運行這個鏡像,就須要手動複製。此時可藉助 Docker Registry來避免鏡像的手動複製。
一個 Docker Registry可包含多個 Docker倉庫,每一個倉庫可包含多個鏡像標籤,每一個標籤對應一個 Docker鏡像。這跟 Maven的倉庫有點相似,若是把 Docker Registry比做 Maven倉庫的話,那麼 Docker倉庫就可理解爲某jar包的路徑,而鏡像標籤則可理解爲jar包的版本號。
Docker Registry可分爲公有Docker Registry和私有Docker Registry。 最常⽤的Docker Registry莫過於官⽅的Docker Hub, 這也是默認的Docker Registry。
Docker 安裝
一、 首先檢查Linux內核,只有內核版本要高於3.10才能夠正常運行Docker
uname - r
二、更新yum
yum -y update
三、安裝軟件包
yum install -y yum-utils device-mapper-persistent-data lvm2
四、設置yum源
// 添加阿里雲的docker源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo //將軟件包信息提早在本地緩存一份,用來提升搜索安裝軟件的速度 yum makecache fast //yum會把下載的軟件包和header存儲在cache中而不自動刪除。若是以爲佔用磁盤空間,可使用yum clean指令清除緩存。 yum clean all
五、查詢docker鏡像版本
yum list docker-ce --showduplicates | sort -r
六、安裝docker
//指定版本安裝: yum ‐y install docker‐ce‐18.03.1.ce //安裝最新的穩定版 yum ‐y install docker‐ce
七、啓動,並添加到開機啓動中
systemctl start docker
systemctl enable docker
Docker經常使用命令
一、搜索鏡像
docker search java
- NAME:鏡像倉庫名稱。
- DESCRIPTION:鏡像倉庫描述。
- STARS:鏡像倉庫收藏數,表示該鏡像倉庫的受歡迎程度,相似於 GitHub的 stars0
- OFFICAL:表示是否爲官方倉庫,該列標記爲[0K]的鏡像均由各軟件的官方項目組建立和維護。
- AUTOMATED:表示是不是自動構建的鏡像倉庫
二、查詢本地鏡像
docker images
- REPOSITORY:鏡像所屬倉庫名稱。
- TAG:鏡像標籤。默認是 latest,表示最新。
- IMAGE ID:鏡像 ID,表示鏡像惟一標識。
- CREATED:鏡像建立時間。
- SIZE: 鏡像大小。
三、刪除鏡像
//刪除本地java鏡像 docker rmi java //刪除本地全部鏡像 docker rmi $(docker images -q)
四、啓動鏡像
docker run -d -p 91:80 nginx
五、列出全部啓動的容器
docker ps
-a :顯示全部的容器,包括未運行的。
-f :根據條件過濾顯示的內容。
--format :指定返回值的模板文件。
-l :顯示最近建立的容器。
-n :列出最近建立的n個容器。
--no-trunc :不截斷輸出。
-q :靜默模式,只顯示容器編號。
-s :顯示總的文件大小。
- CONTAINER_ID:表示容器 ID。
- IMAGE:表示鏡像名稱。
- COMMAND:表示啓動容器時運行的命令。
- CREATED:表示容器的建立時間。
- STATUS:表示容器運行的狀態。UP表示運行中, Exited表示已中止。
- PORTS:表示容器對外的端口號。
- NAMES:表示容器名稱。該名稱默認由 Docker自動生成,也可以使用 docker run命令的--name選項自行指定。
六、中止容器
//中止容器 docker stop 容器ID //強制中止容器 docker kill 容器ID
七、啓動已中止容器
docker start 容器ID
八、查看容器信息
docker inspect 容器ID
九、進入容器
使用docker exec命令用於進入一個正在運行的docker容器。若是docker run命令運行容器的時候,沒有使用-it參數,就要用這個命令進入容器。一旦進入了容器,就能夠在容器的 Shell 執行命令了
docker exec ‐it 容器ID /bin/bash
十、容器內安裝vim、ping、ifconfig等指令
apt‐get update
apt‐get install vim #安裝vim
apt‐get install iputils‐ping #安裝ping
apt‐get install net‐tools #安裝ifconfig
十一、刪除容器
//刪除指定容器
docker rm 容器ID
//刪除全部容器
docker rm $(docker ps ‐a ‐q)
十二、容器與宿主機複製文件
//從容器裏面拷文件到宿主機 docker cp 容器id:要拷貝的文件在容器裏面的路徑 宿主機的相應路徑 //從宿主機拷文件到容器裏 docker cp 要拷貝的宿主機文件路徑 容器id:要拷貝到容器裏面對應的路徑
配置鏡像加速
一、登陸阿里雲,容器鏡像服務,獲取鏡像加速器(https://cr.console.aliyun.com/#/accelerator),根據操做文檔進行配置;
總體思惟導圖