[Docker] Docker的概念原理與基本用法【待完善】

1 概述

1.1 簡述

Docker是一個開源的引擎,可以輕鬆的爲任何應用創建一個輕量級的、可移植的、自給自足的容器。
開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然後發佈到任何支持 docker 的機器上運行。
容器是完全使用沙箱機制,相互之間不會有任何接口調用。

1.2 優缺點

1.2.1 優點

1)快
運行時的性能快,管理操作(啓動,停止,開始,重啓等等) 都是以秒或毫秒爲單位的。
2)敏捷
像虛擬機一樣敏捷,而且會更便宜,在 bare metal(裸機)上佈署像點個按鈕一樣簡單。
3)靈活
將應用和系統“容器化”,不添加額外的操作系統
4)輕量
在一臺服務器上可以佈署 100~1000 個 Containers 容器。
5)便宜
開源的,免費的,低成本的。

1.2.2 缺點

所有容器共用 linux kernel 資源,資源能否實現最大限度利用,所以在安全上也會存在漏洞。

1.3 版本

目前最近的2個版本

  • docker-ce
docker-ce-18.06.3.ce-3.el7
  • docker-ee

2 docker的基本用法

2.1 鏡像相關操作

從 dockerhub 查找鏡像

  • docker search {某個鏡像的名稱}
  • 查找對應DockerHub倉庫中的鏡像
  • --filter=stars=50 : 列出收藏數不小於指定值的鏡像
docker search tomcat
...
docker search centos

解釋說明:

  • NAME: 鏡像倉庫源的名稱
  • DESCRIPTION: 鏡像的描述
  • OFFICIAL: 是否docker 官方發佈
  • stars: 類似Github 裏面的star,表示點贊、喜歡的意思。AUTOMATED: 自動構建。

補充

[root@guoweixin ~]# docker search --help
Usage: docker search [OPTIONS] TERM
Search the Docker Hub for images
Options:
-f, --filter filter Filter output based on conditions provided
根據提供的條件過濾器輸出
--format string Pretty-print search using a Go template
⽤Go模板打印出漂亮的搜索結果
--limit int Max number of search results (default 25)
搜索結果的最⼤數量(默認值爲25)
--no-trunc Don't truncate output
不要截斷輸出

下載鏡像

docker pull [選項] [Docker Registey 地址[:端口號]/] 倉庫名[:標籤]
從 Docker 鏡像倉庫獲取鏡像

  • Docker 鏡像倉庫地址: 地址的格式一般是 < 域名 /IP>[: 端口號 ] 。默認地址是 Docker Hub
  • 倉庫名:這裏的倉庫名是兩段式名稱, 即 < 用戶名 >/< 軟件名 > 。對於 Docker Hub ,如果不給出用戶名,則默認爲 library ,也就是官方鏡像。
docker pull centos

又例如:我們需要一個tomcat的鏡像來作爲我們的web服務。通過 docker pull獲取鏡像

docker pull tomcat:版本號 //不寫 :版本號 代表laster版本

查看本地鏡像

要想列出已下載下來的鏡像,可以使用 docker image ls 命令
列表包含了 倉庫名、標籤、鏡像 ID、創建時間 以及 所佔用的空間。

其中,倉庫名、標籤在之前的基礎概念已經介紹過了。
鏡像 ID 則是鏡像的唯一標識,一個鏡像可以對應多個標籤。
因此,如果擁有相同的 ID,因爲它們對應的是同一個鏡像。

docker images
  • -a--all,列出所有鏡像
  • -q--quiet,只顯示鏡像的id
  • --digests: 顯示鏡像的摘要信息

REPOSITORY 鏡像的倉庫源
TAG        鏡像的標籤
IMAGE ID   鏡像的 ID
CREATED    鏡像創建時間
SIZE       鏡像大小

同一個倉庫源可以有多個 TAG,代表這個倉庫源的不同版本,我們使用REPOSITORY:TAG 定義不同的鏡像;
如果你不定義鏡像的標籤版本,docker將默認使用 lastest 鏡像!

將鏡像做成離線壓縮包

docker save -o centos.tar.gz centos
ls ./

解壓離線鏡像包

docker load -i centos.tar.gz

刪除鏡像

docker rmi -f centos:latest

K FAQ/問題集

Q1 配置docker鏡像加速器?

  • Step1 登陸阿里雲鏡像倉庫

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
如果沒有開通,可開通阿里雲的鏡像服務

編輯/etc/docker/daemon.json

  • Step2 重啓docker
systemctl daemon-reload
systemctl restart docker

Q2 docker hub官網進不去?

問題分析

docker hub進不去是因爲“hub.docker.com”是在國外的,所以訪問速度很慢,導致無法訪問該網址。

https://hub.docker.com/

解決方法

  • 1、找到“daemon.json”文件
  • 2、使用vim命令將其打開
  • 3、添加“{ "registry-mirrors" :["https://docker.mirrors.ustc.edu.cn"]}”內容
  • 4、重啓docker即可

參考文獻

Y 推薦資源

Y.1 核心資源/核心鏈接

  • Docker官網

https://docs.docker.com/

  • Docker github

https://github.com/moby/moby

  • Dockerhub 鏡像站官網

https://registry.hub.docker.com

  • Docker 官方 registry 鏡像加速

https://dashboard.daocloud.io/mirror

Y.2 Docker Hub 鏡像加速器列表

  • Docker 官方鏡像

https://hub.docker.com/

鏡像加速器 鏡像加速器地址URL 專屬加速器 其他加速
Docker 中國官方鏡像站 https://registry.docker-cn.com ... Docker Hub
Dao Cloud 鏡像站 http://f136db2.m.daocloud.io/ 可登錄,系統分配 Docker Hub
Azure 中國鏡像站 https://dockerhub.azk8s.cn Docker Hub / GCR / Quay
科大鏡像站 https://docker.mirrors.ustc.edu.cn ... Docker Hub / GCR / Quay
阿里雲 https://docker.mirrors.ustc.edu.cn 需登錄,系統分配 Docker Hub
七牛雲 https://reg-mirror.qiniu.com ... Docker Hub / GCR / Quay
網易雲 https://hub-mirror.c.163.com ... Docker Hub
騰訊雲 https://mirror.ccs.tencentyun.com ... Docker Hub

Y.3 其他

https://cr.console.aliyun.com/cn-hangzhou/instances/artifact

X 參考文獻

待閱讀

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