DOCKER 01 說明與安裝

2022-07-05 11:12:11 字數 3952 閱讀 4739

關於 dcoker

之前寫了一些關於這一部分的原因,但是感覺都不全面,所以打算重新完整的做個整理,查漏補缺。

現在已經是 2020 年,作為運維人員慢慢繞不過的坎就是容器編排這一塊的內容。相較於傳統運維,容器運維在發展前景和薪資待遇上面還是非常可觀的。這也是學習該技術的目的與動力。

關於 docker 的發展歷史,需要事先簡單了解以下內容:

1. docker 是 dotcloud 公司(成立於 2010 年,2013 年更名為 docker 股份****)開源在 github 上面的乙個專案。

2. 自 2015 年 runc 發布之後,docker 走上了真正跨平台的道路,這也是 docker 的乙個核心思想的由來:一次構建,到處執行。

3. 2016 年開始,docker 拆分成為了社群版docker ce和商業版docker ee,我們都用 docker ce。

4. docker 在 1.13 版本之後,命名方式更改為 年.月 的方式,如 18.06,每月發布前沿版(edge)和三個月發布穩定版(stable)。

5. docker 在老版本 centos 源中叫 docker,ubuntu 源中叫 docker.io,現在已經統一叫做docker-ce

的高階,效能已能夠和 ubuntu 的aufs相提並論。 

關於 docker 的一些概念,需要事先簡單了解以下內容:

1. docker 由go語言開發,屬於典型的 c/s 架構的產品。

2. docker 將容器技術推向了巔峰,但是容器技術並非起源於 docker。

3. docker 屬於 linux container(lxc,核心自帶,一種核心虛擬化技術,提供輕量級程序和資源隔離)的上層封裝,所以並非新技術。

4. docker 並非容器技術的最佳實踐,但是由於名氣大,使用廣,目前仍然是主流學習的目標。

5. 學 docker 不是最終目的,是為學習容器編排工具 kubernetes 做準備。

6. docker 擁有自己的編排工具 docker swarm,但是由於幹不贏 kubernetes 的原因已經快停止維護。

7. docker 是乙個paas

至於其它內容,在後面寫到的時候再說!

docker 的優缺點

在網上可以隨處可見也是官方文件上面隨處可見的一張關於 docker 和 vm 做比較的圖:

可以明顯的發現:

傳統的 vm 的工作過程:

1. 首先,需要一台伺服器,在上面安裝類似於 vmware workstation 這樣的軟體,只不過在伺服器上一般使用的是 vmware esxi 這類。

2. 然後在這個軟體的管理介面上面新建虛擬機器,安裝作業系統,配置 ip 等。

3. 最後再在這個新建的虛擬機器上面安裝想要執行的服務。

容器的工作過程:

1. 給伺服器安裝系統,可以是 linux 也可以是 windows,並安裝上 docker。

2. 執行我們想要執行的服務容器,每個容器以乙個單獨的程序存在與宿主機的系統上面。

兩者做對比可以發現:

1. 傳統的 vm 每次新增虛擬機器就需要重灌系統,並單獨執行系統,這樣會導致 cpu,記憶體,磁碟的額外開銷。但是好處在於隔離效果比較好。

2. 使用容器則不需安裝額外的作業系統,每個服務都以程序的方式跑在宿主機上,且擁有獨立的虛擬網路環境,獨立的磁碟儲存劃分,能節省系統開銷。但相較傳統的 vm 在隔離性上不那麼好,畢竟還在乙個宿主系統下面,如果這個宿主系統掛掉,上面的所有執行的容器都會掛掉。

docker 的核心元件

服務端(server)和客戶端(client):c/s 架構,所有的執行都是通過服務端傳送給客戶端執行。

映象(image):需要執行的服務和執行環境封裝在一起的包。

容器(container):通過映象執行起來的例項。

具體關係可以參照下圖:

安裝部署

docker 在網上的安裝方式一般會看到這幾種:curl 指令碼安裝,原始碼安裝,yum 安裝,rpm 安裝。

通常對於生產環境盡量推薦選擇 rpm 版本安裝,原因在於便於版本控制。不安裝最新的,怕有坑。

1. 安裝準備:

但是可能速度會很慢,所以也可以選擇中科大提供的源:

containerd.io-1.2.6-3.3.el7.x86_64.rpm

docker-ce-19.03.6-3.el7.x86_64.rpm

docker-ce-cli-19.03.6-3.el7.x86_64.rpm

這裡準備了 4 臺 centos linux release 7.5.1804 的虛擬機器,ip 分別是 192.168.200.101-104,並事先關閉防火牆和 selinux。

為了更好的支援,也可以公升級一下機器的核心,當然如果你的伺服器已經執行其他服務,最好不要公升級,怕出問題。

具體公升級方法可以參照我之前的部落格,裡面有一鍵公升級指令碼:

2. 安裝依賴:

#

解除安裝舊版本

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

#安裝依賴

#更新系統

yum update

mkdir docker

cd docker/

#上傳檔案到該目錄下面,再執行安裝

yum -y install *

4. 啟動並設定開機自啟:

systemctl start docker

systemctl enable docker

systemctl status docker

5. 檢視:

docker version
結果如圖:

6. 映象倉庫優化:

由於 docker 預設的映象倉庫 docker hub 因為某些不可描述的原因訪問及其慢,可以將它換為國內的映象源:

阿里映象源:麻煩,需要專門申請賬戶。

中科大映象源:直接配置即可。(我寫文章時候中科大打不開,注意一下,不行就用阿里的,雖然麻煩一些)

#

拷貝啟動檔案

cp /lib/systemd/system/docker.service /etc/systemd/system

#修改配置

sed -i "

s#^execstart=.*#execstart=/usr/bin/dockerd -h fd:// --containerd=/run/containerd/containerd.sock --registry-mirror=

" /etc/systemd/system/docker.service

#重啟docker

chmod 755 /etc/systemd/system/docker.service

systemctl daemon-reload

systemctl restart docker

此時檢視 docker 程序:

ps -ef | grep docker
到此,docker 安裝完成,接下來是 docker 的使用!

Docker01 容器 映象

3 映象 倉庫 repository 集中存放映象檔案的場所。倉庫和倉庫註冊伺服器是有區別的。倉庫註冊器上往往存放著多個倉庫,每個倉庫又包含了多個映象,每個映象有不同的標籤 tag 倉庫也分為公開倉庫和私有倉庫兩種形式。docker run options image command arg.opt...

Docker01 重要概念

docker是什麼 docker是以容器技術為核心的一套應用的構建,分發,執行的體系和生態。docker 的優點 對開發和運維來說,最希望的是一次構建或配置,可以在任意地方正常執行。例如 開發者可以使用乙個標準的映象來構建一套開發容器,開發完成之後,運維人員可以直接使 用這個容器來部署 docker...

docker安裝說明

環境 centos 7 第一步 解除安裝老版本 sudo yum remove docker docker client docker client latest docker common docker latest docker latest logrotate docker logrotate...