天天看點

Docker入門

Docker簡介

Docker 是一個開源的應用容器引擎,基于 Go 語言 并遵從Apache2.0協定開源。

Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實作虛拟化。

容器是完全使用沙箱機制,互相之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。

Docker 從 17.03 版本之後分為 CE(Community Edition: 社群版) 和 EE(Enterprise Edition: 企業版),我們用社群版就可以了。

Docker官網:https://www.docker.com/

Docker入門

Docker的應用場景

Web 應用的自動化打包和釋出。

自動化測試和持續內建、釋出。

在服務型環境中部署和調整資料庫或其他的背景應用。

從頭編譯或者擴充現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。

Docker 的優點

1、簡化程式:

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

2、避免選擇恐懼症:

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

3、節省開支:

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

Docker的架構

Docker 鏡像(Images) 是用于創Docker 鏡像建 Docker 容器的模闆。

Docker 容器(Container) 容器是獨立運作的一個或一組應用。

Docker 用戶端(Client) Docker 用戶端通過指令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 與 Docker 的守護程序通信。

Docker 主機(Host) 一個者實體或虛拟的機器用于執行 Docker 守護程序和容器。

Docker 倉庫(Registry) Docker 倉庫用來儲存鏡像,可以了解為代碼控制中的代碼倉庫。

Docker Hub(https://hub.docker.com) 提供了龐大的鏡像集合供使用。

Centos7安裝Docker

我們切換到root使用者

1、Docker 要求 CentOS 系統的核心版本高于 3.10 ,檢視本頁面的前提條件來驗證你的CentOS 版本是否支援 Docker 。

通過 uname -r 指令檢視你目前的核心版本

$ uname -r

2、使用 root 權限登入 Centos。確定 yum 包更新到最新。

$ yum update

3、解除安裝舊版本(如果安裝過舊版本的話)

$ yum remove docker docker-common docker-selinux docker-engine

4、安裝需要的軟體包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的

$ yum install -y yum-utils device-mapper-persistent-data lvm2

5、設定yum源

$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6,安裝最新版本的Docker

$ yum install docker-ce docker-ce-cli containerd.io

7,啟動Docker并設定開機啟動

$ systemctl start docker

$ systemctl enable docker

8,驗證Docker

$ docker version

Docker入門
配置阿裡雲

預設的遠端倉庫 https://hub.docker.com/下載下傳網速很慢,是以我們配置下阿裡雲的鏡像倉庫

1、我們先登入阿裡雲的服務位址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

2、找到我們需要配置的位址

Docker入門

3、然後我們執行指令:cd /etc/docker/ 進入檔案夾,然後輸入:ll 找到daemon.json檔案,沒有的話就建立:vi daemon.json,就會進入下圖,我們隻需要把上圖紅框裡面的位址copy到裡面,然後按Esc,然後輸入指令 :wq(:是指令的一部分),就更改完成了

4、重新開機daemon

systemctl daemon-reload

5、重新開機docker服務

systemctl restart docker

下載下傳東西,速度會快很多

Docker 鏡像常用指令

基本指令

啟動Docker

systemctl start docker

停止Docker

systemctl stop docker

重新開機Docker

開機啟動Docker

systemctl enable docker

檢視Docker概要資訊

docker info

檢視Docker幫助文檔

docker --help

檢視Docker版本資訊

docker version

Docker鏡像常用指令

下載下傳鏡像官網:https://hub.docker.com/

a,docker images 列出本機所有鏡像

docker images

列出本機所有鏡像

b,docker search 搜尋鏡像

c,docker pull 下載下傳鏡像

d、docker rmi 删除鏡像

1,删除單個:docker rmi 鏡像名稱:[TAG]

2,删除多個:docker rmi -f 鏡像名稱1:[TAG] 鏡像名稱2:[TAG]

中間空格隔開

3,删除全部:docker rmi -f $(docker images -qa)

Docker 容器常用指令

Docker建立并啟動容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

–name=“容器新名字”:為容器指定一個名稱;

-i:以互動模式運作容器,通常與-t或者-d同時使用;

-t:為容器重新配置設定一個僞輸入終端,通常與-i同時使用;

-d: 背景運作容器,并傳回容器ID;

-P: 随機端口映射,容器内部端口随機映射到主機的端口

-p: 指定端口映射,格式為:主機(宿主)端口:容器端口

啟動普通容器: docker run --name 别名 鏡像ID

啟動互動式容器: docker run -it --name 别名 鏡像ID 來運作一個容器,取别名,互動模式運作,以及配置設定一個僞終端,并且進入僞終端;

執行個體:

docker run -it --name mycentos03 67fa590cfc1c

注意:

1、啟動普通容器的方式基本不用,沒有僞終端,沒有太大價值;

2、啟動互動式容器的方式,容器一建立完畢,立即進入僞終端

Docker列出容器

docker ps [OPTIONS]

OPTIONS說明:

-a :顯示所有的容器,包括未運作的。

-f :根據條件過濾顯示的内容。

–format :指定傳回值的模闆檔案。

-l :顯示最近建立的容器。

-n :列出最近建立的n個容器。

–no-trunc :不截斷輸出。

-q :靜默模式,隻顯示容器編号。

-s :顯示總的檔案大小。

docker ps 檢視正在運作的容器

docker ps -a 檢視所有容器

docker ps -n 2 顯示最近建立的2個容器

docker ps -f status=exited 檢視停止的容器

Docker退出容器

exit 容器停止退出

ctrl+P+Q 容器不停止退出

Docker進入容器

a、docker attach 容器ID or 容器名

b、Docker進入容器執行指令

Docker啟動容器

docker start 容器ID or 容器名

Docker重新開機容器

docker restart 容器ID or 容器名

Docker停止容器

docker stop 容器ID or 容器名

Docker删除容器

繼續閱讀