天天看點

docker安裝及docker常用指令docker簡介centos7安裝docker鏡像加速docker常用指令

目錄

  • docker簡介
    • docker架構
          • Docker daemon( Docker守護程序)
          • Client( Docker用戶端)
          • Images( Docker鏡像)
          • Container(容器)
          • Registry
    • Docker與虛拟機比較
    • docker的優點
        • 簡化程式
        • 避免選擇恐懼症
        • 節省開支
  • centos7安裝docker
    • 采用yum安裝docker
  • 鏡像加速
          • 使用阿裡鏡像加速
          • 修改docker鏡像源
          • 或者直接使用指令設定docker鏡像源
  • docker常用指令
    • 鏡像相關指令
          • 1. 搜尋鏡像
          • 2.下載下傳鏡像
          • 3.檢視已下載下傳鏡像
          • 4.删除鏡像
            • 注意
    • 容器相關指令
          • 1. 啟動容器
          • 2.檢視運作中的所有容器
          • 3. 檢視所有的容器
          • 4.停止運作中的容器
          • 5.删除容器
          • 6.清空所有未運作的容器
          • 7.進入容器
          • 8.退出進入容器的狀态
          • 9.檢視容器資訊
          • 10.檢視容器的日志

docker簡介

Docker官方網址:https://docs.docker.com/ (英文位址)

Docker中文網址:http://www.docker.org.cn/ (中文位址)

Docker是基于Go語言實作的雲開源項目,誕生于2013年初,最初發起者是dotClouw公司。Docker 自開源後受到廣泛的關注和讨論,目前已有多個相關項目,逐斷形成了圍Docker的生态體系。dotCloud 公司後來也改名為Docker Ine。

Docker是一個開源的容器引擎,它有助于更快地傳遞應用。 Docker可将應用程式和基礎設施層隔離,并且能将基礎設施當作程式一樣進行管理。使用 Docker可更快地打包、測試以及部署應用程式,并可以縮短從編寫到部署運作代碼的周期。

docker架構

docker安裝及docker常用指令docker簡介centos7安裝docker鏡像加速docker常用指令

用戶端→Docker_Host(主控端)→倉庫

容器→鏡像→倉庫

Docker daemon( Docker守護程序)

Docker daemon是一個運作在主控端( DOCKER-HOST)的背景程序。可通過 Docker用戶端與之通信。

Client( Docker用戶端)

Docker用戶端是 Docker的使用者界面,它可以接受使用者指令和配置辨別,并與 Docker daemon通信。圖中, docker build等都是 Docker的相關指令。

Images( Docker鏡像)

Docker鏡像是一個隻讀模闆,它包含建立 Docker容器的說明。它和系統安裝CD光牒有點像,使用系統安裝CD光牒可以安裝系統,同理,使用Docker鏡像可以運作 Docker鏡像中的程式。

Container(容器)

容器是鏡像的可運作執行個體。鏡像和容器的關系有點類似于面向對象中,類和對象的關系。可通過 Docker API或者 CLI指令來啟停、移動、删除容器。

Registry

Docker Registry是一個集中存儲與分發鏡像的服務。建構完 Docker鏡像後,就可在目前主控端上運作。但如果想要在其他機器上運作這個鏡像,就需要手動複制。此時可借助 Docker Registry來避免鏡像的手動複制。

一個 Docker Registry可包含多個 Docker倉庫,每個倉庫可包含多個鏡像标簽,每個标簽對應一個 Docker鏡像。這跟 Maven的倉庫有點類似,如果把 Docker Registry比作 Maven倉庫的話,那麼 Docker倉庫就可了解為某jar包的路徑,而鏡像标簽則可了解為jar包的版本号。

Docker與虛拟機比較

作為一種輕量級的虛拟化方式,Docker在運作應用上跟傳統的虛拟機方式相比具有顯著優勢:

  • Docker容器很快,啟動和停止可以在秒級實作,這相比傳統的虛拟機方式要快得多。
  • Docker容器對系統資源需求很少,一台主機上可以同時運作數千個Docker容器。
  • Docker通過類似Git的操作來友善使用者擷取、分發和更新應用鏡像,指令簡明,學習成本較低。
  • Docker通過Dockerfile配置檔案來支援靈活的自動化建立和部署機制,提高工作效率。
docker安裝及docker常用指令docker簡介centos7安裝docker鏡像加速docker常用指令

docker的優點

簡化程式

Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,便可以實作虛拟化。Docker改變了虛拟化的方式,使開發者可以直接将自己的成果放入Docker中進行管理。友善快捷已經是 Docker的最大優勢,過去需要用數天乃至數周的 任務,在Docker容器的處理下,隻需要數秒就能完成。

避免選擇恐懼症

如果你有選擇恐懼症,還是資深患者。Docker 幫你 打包你的糾結!比如 Docker 鏡像;Docker 鏡像中包含了運作環境和配置,是以 Docker 可以簡化部署多種應用執行個體工作。比如 Web 應用、背景應用、資料庫應用、大資料應用比如 Hadoop 叢集、消息隊列等等都可以打包成一個鏡像部署。

節省開支

一方面,雲計算時代到來,使開發者不必為了追求效果而配置高額的硬體,Docker 改變了高性能必然高價格的思維定勢。Docker 與雲的結合,讓雲空間得到更充分的利用。不僅解決了硬體管理的問題,也改變了虛拟化的方式。

centos7安裝docker

采用yum安裝docker

  1. 使用 root 權限登入 Centos7,確定 yum 包更新到最新。
yum -y update
           
  1. 如果安裝過docker,先解除安裝舊版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
           
  1. 設定倉庫。安裝所需的軟體包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存儲驅動程式需要 device-mapper-persistent-data 和 lvm2。
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
           
  1. 設定yum源(阿裡雲)
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
           
  1. 安裝docker
sudo yum install docker-ce docker-ce-cli containerd.io
           
  1. 啟動并加入開機啟動
systemctl start docker
systemctl enable docker
           
  1. 驗證安裝是否成功(有client和service兩部分表示docker安裝啟動都成功了)
docker version
           

鏡像加速

直接從Docker Hub下載下傳鏡像速度會很慢,一般會采用鏡像加速。

使用阿裡鏡像加速

詳細參考: https://cr.console.aliyun.com/cn-hangzhou/mirrors

阿裡鏡像如果想要使用必須注冊,是以也可以采用下列的方式

修改docker鏡像源
  1. 首先,修改配置檔案

    vim /etc/docker/daemon.json

{
	"registry-mirrors": ["https//registry.docker-cn.com"]
}
           
  1. 加載Docker配置

    systemctl daemon-reload

  2. 重新開機Docker

    systemctl restart docker.service

附:

國内的幾個優秀的Docker源

  • Docker中國區官方鏡像:https://registry.docker-cn.com
  • 網易蜂巢:http://hub-mirror.c.163.com
  • 中國科技大學:https://docker.mirrors.ustc.edu.cn
  • 阿裡鏡像:xxx.mirror.aliyuncs.com (需要注冊,xxx代表你的賬号)
  • DaoCloud:xxxx.m.daocloud.ip (需要注冊,xxx代表你的賬号)
或者直接使用指令設定docker鏡像源
sudo curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s 要設定的鏡像源  
           

docker常用指令

鏡像相關指令

1. 搜尋鏡像

例如搜尋java鏡像

docker search java
           

可使用 docker search指令搜尋存放在 Docker Hub(這是docker官方提供的存放所有docker鏡像軟體的地方,類似maven的中央倉庫)中的鏡像。執行該指令後, Docker就會在Docker Hub中搜尋含有 java這個關鍵詞的鏡像倉庫。

Docker Hub 官網:https://hub.docker.com/search?q=java&type=image

2.下載下傳鏡像

例如下載下傳jdk8

docker pull java:8
           

使用指令docker pull指令即可從 Docker Registry上下載下傳鏡像,執行該指令後,Docker會從 Docker Hub中的 java倉庫下載下傳最新版本的 Java鏡像。如果要下載下傳指定版本則在java後面加冒号指定版本。

3.檢視已下載下傳鏡像
docker images
           
4.删除鏡像

d23bdf5b1b1b

docker images

查詢出的目前java:8de1鏡像ID。

java:8

為下載下傳鏡像時的鏡像及版本

以下兩種方式都可以删除。

docker rmi d23bdf5b1b1b
docker rmi java:8
           

删除所有鏡像

注意

  1. 要删除鏡像,必須先删除依賴于此鏡像的所有容器。
  2. 要删除容器,必須要先停止此容器。

容器相關指令

1. 啟動容器
docker run -d -p 81:80 nginx
           

-d 背景運作

-p 主控端端口:容器端口 #開放容器端口到主控端端口

通路 http://Docker主控端 IP:81/,将會看到nginx的主界面

需要注意的是,使用 docker run指令建立容器時,會先檢查本地是否存在指定鏡像。如果本地不存在該名稱的鏡像, Docker就會自動從 Docker Hub下載下傳鏡像并啟動一個 Docker容器。

2.檢視運作中的所有容器
3. 檢視所有的容器
docker ps –a
           
4.停止運作中的容器
docker stop 運作容器名/容器id
           

停止所有容器

5.删除容器
docker rm 運作容器名/容器id
           

删除所有容器

注意:删除容器前必須先停止容器

6.清空所有未運作的容器
7.進入容器
docker container(可省略) exec -it 運作容器名/容器id /bin/bash
           

預設情況下軟體安裝的目錄在

/ect

目錄下

8.退出進入容器的狀态
9.檢視容器資訊
docker inspect 運作容器名/容器id
           
10.檢視容器的日志
docker logs --tail  300 -f 運作容器名/容器id
           

繼續閱讀