Docker 筆記(1)Docker介紹、安裝與配置

Docker 簡介

什麼是 Docker?

在這裏插入圖片描述
Docker is the world’s leading software container platform.

官方給 Docker 的定位是一個 應用容器平臺

爲什麼是 Docker?

  • 合作開發的時候,在本機可以跑,別人的電腦跑不起來?
    我們拿 Java Web 應用程序舉例,我們一個 Java Web 應用程序涉及很多東西,比如 Jdk、Tomcat、Spring 等等。當這些其中某一項版本不一致的時候,可能就會導致應用程序跑不起來這種情況。Docker 則將程序直接打包成鏡像,直接運行在容器中即可。

  • 服務器自己的程序掛了,結果發現是別人程序出了問題把內存喫完了,自己程序因爲內存不夠就掛了
    這種也是一種比較常見的情況,如果你的程序重要性不是特別高的話,公司基本上不可能讓你的程序獨享一臺服務器的,這時候你的服務器就會跟公司其他人的程序共享一臺服務器,所以不可避免地就會受到其他程序的干擾,導致自己的程序出現問題。Docker 就很好解決了環境隔離的問題,別人程序不會影響到自己的程序。

  • 公司要弄一個活動,可能會有大量的流量進來,公司需要再多部署幾十臺服務器
    在沒有 Docker 的情況下,要在幾天內部署幾十臺服務器,這對運維來說是一件非常折磨人的事,而且每臺服務器的環境還不一定一樣,就會出現各種問題,最後部署地頭皮發麻。用 Docker 的話,我只需要將程序打包到鏡像,你要多少臺服務,我就給力跑多少容器,極大地提高了部署效率。

Docker 和 虛擬機 的區別

在這裏插入圖片描述
比較上面兩張圖,我們發現:

  • 虛擬機 攜帶操作系統,本身很小的應用程序卻因爲攜帶了操作系統而變得非常大,很笨重;
  • Docker 不攜帶操作系統,所以 Docker 的應用就非常的輕巧;
  • 在調用宿主機的CPU、磁盤等等這些資源的時候,兩者也是不一樣的,拿內存舉例:
    虛擬機利用 Hypervisor 虛擬化內存,調用過程是 虛擬內存->虛擬物理內存->真正物理內存
    Docker 利用 Docker Engine 調用宿主的的資源,調用過程是 虛擬內存->真正物理內存

傳統虛擬機與 Docker容器 的對比:

傳統虛擬機 Docker容器
磁盤佔用 幾個GB到幾十個GB左右 幾十MB到幾百MB左右
CPU內存佔用 虛擬操作系統非常佔用CPU和內存 Docker引擎佔用極低
啓動速度 (從開機到運行項目)幾分鐘 (從開啓容器到運行項目)幾秒
安裝管理 需要專門的運維技術 安裝、管理方便
應用部署 每次部署都費時費力 從第二次部署開始輕鬆簡捷
耦合性 多個應用服務安裝到一起,容易互相影響 每個應用服務一個容器,達成隔離
系統依賴 需求相同或相似的內核,目前推薦是Linux

Docker 的核心

在這裏插入圖片描述

  • 鏡像(Image):一個鏡像代表一個 應用環境,它是隻讀文件,如 mysql鏡像、tomcat鏡像等;
  • 容器: 鏡像每次運行就是產生一個容器,容器就是正在運行的鏡像,特點就是可讀可寫;
  • 倉庫:用來存放鏡像的位置,類似於maven倉庫,也是鏡像下載和上傳的位置;
  • dockerFile:docker生成鏡像配置文件,用來書寫自定義鏡像的一些配置;
  • tar:對鏡像打包的文件,日後可以還原成鏡像;

Docker 安裝

Docker 的安裝(centos7.x)

Docker 安裝官網教程:https://docs.docker.com/engine/install/centos/

Play With Docker 在線虛擬機:https://labs.play-with-docker.com/


卸載原有 docker:沒安裝過也建議執行一下,它會自動檢測,沒什麼影響。

sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

在這裏插入圖片描述
安裝 docker 依賴:

  • yum-utils 提供一個 yum-config-manager 單元
  • device-mapper-persistent-data 和 lvm2 用於儲存設備映射(devicemapper)
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

設置 docker 的 yum源:

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

也可以安裝指定版本的 docker,我們一般用前面的方法安裝最新版即可。
yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
sudo yum install docker-ce-18.09.5-3.el7 docker-ce-cli-18.09.5-3.el7 containerd.io

啓動 docker:

sudo systemctl start docker

查看 docker 運行狀態: 看到 Active 爲 active(running) 說明 docker 已啓動;

sudo systemctl status docker

關閉 docker:

sudo systemctl start docker

測試安裝,docker 運行第一個項目!

sudo docker run hello-world

在這裏插入圖片描述

Docker 配置阿里鏡像加速服務

docker 運行流程:
在這裏插入圖片描述

docker配置阿里雲鏡像加速
訪問阿里雲查看 docker 鏡像加速服務:https://account.aliyun.com/

阿里雲控制檯搜索:容器鏡像,點擊進入;
在這裏插入圖片描述
點擊左側的鏡像加速器,查看自己的加速地址(每個人不一樣),按文檔操作 即可;
在這裏插入圖片描述
驗證 docker 的鏡像加速是否生效:

docker info

顯示信息中的 Registry Mirrors 如果爲阿里雲提供的加速地址,即配置成功。

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