一個伺服器可以搭建多少docker
㈠ 阿里雲ECS伺服器安裝docker詳細步驟
環境:ECS伺服器,務必使用CentOS 7 以上版本,64位系統推薦是CentOS 7.8
安裝步驟:
一:安裝docker所需的環境
1.安裝依賴:yum install -y yum-utils device-mapper-persistent-data lvm2
2.配置yum源 使用國內的:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.查看docker版本:yum list docker-ce --showplicates | sort -r
二:安裝docker
注意:不使用1.13.1版本,該版本在jenkins使用docker命令時會說找不到配置文件
1.安裝docker:yum -y install docker-ce-20.10.10-3.el7
2.查看docker版本:docker -v
3.啟動docker:systemctl start docker
4.查看docker 啟動狀態:systemctl status docker
5.檢查安裝結果:docker info
運行Docker守護進程:systemctl start docker
停止Docker守護進程:systemctl stop docker
重啟Docker守護進程:systemctl restart docker
6.查看容器:docker ps
7.停止容器:docker stop 容器id
三:修改鏡像倉庫:
vim /etc/docker/daemon.json
添加如下內容:
{
"debug":true,"experimental":true,"registry-mirrors":["https://pb5bklzr.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://docker.mirrors.ustc.e.cn"]
}
8.查看信息:docker info
僅供個人學習使用,如有不足請指出。
願景:願天下所有程序員能早日財富自由,永不搬磚!
㈡ 入門、快速搭建Docker分布式項目環境
1.什麼是Docker
借用下網上傳統虛擬機與Docker的對比圖片。
傳統虛擬化應用程序中,不僅包含應用程序和必要的二進制文件庫,還包含一個完整的操作系統。
而Docker容器僅包含應用程序和相關依賴項,在主機的操作系統用戶空間中作為一個獨立進程運行,與其他容器共享內核,從而實現了虛擬機的資源隔離和分配,具有更高的可移植性和效率提高。
2.為什麼使用Docker
1.更快速的交付和部署
開發者可以使用一個標準的鏡像來構建一套開發容器,開發完成之後,運維人員可以直接 使用這個容器來部署代碼。
2.高效部署和擴容
Docker 容器幾乎可以在任意的平台上運行,包括物理機、虛擬機、公有雲、私有雲、個人電腦、伺服器等。
3.更高的資源利用率
Docker 對系統資源的利用率很高,一台主機上可以同時運行數千個 Docker 容器。容器除了運行其中應用外,基本不消耗額外的系統資源,使得應用的性能很高,同時系統的開銷盡量小。傳統虛擬機方式運行 10 個不同的應用就要起 10 個虛擬機,而Docker 只需要啟動 10 個隔離的應用即可。
4.更簡單的管理
使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,從而實現自動化並且高效的管理。
3.Docker的工作原理和概念
自己製作鏡像然後上傳倉庫或使用倉庫已有的鏡像文件拉取到容器中部署。
為了方便Docker的說明,本次例子使用虛擬機安裝CentOS 7來演示。CentOS 7的安裝請等查看下篇文章或自行網路。
1.安裝之前的准備工作
按照順序,執行如下操作
1、安裝必要的一些系統工具
2、添加軟體源信息
3、更新並安裝Docker-CE
安裝准備工作
2.開啟Docker服務
運行docker version 如果出現以下情況,說明當前用戶沒有 root相關操作許可權
無root許可權
解決思路
先查看有多少鏡像
運行docker run hello-world 測試命令,如果出現下方紅框內消息,證明安裝成功
3.查看docker基本信息和版本
1.構建Nginx基礎鏡像
查詢nginx鏡像
鏡像拉取
查看對外的訪問路徑
怎麼才能訪問剛才啟用的nginx
nginx頁面內容
我們可以進入容器,看下這個容器是什麼樣子
查看nginx在哪個位置
我們發現盡管啟動了nginx,但是在外部還是不能訪問,這是因為docker具有隔離機制,要不然怎麼叫做容器化部署呢
Docker內nginx埠
對Nginx進行外網埠映射;
2.構建Tomcat基礎鏡像
打開容器後,默認安裝目錄在 /usr/local/
3.創建自己的專屬鏡像
用Dockerfile來製作鏡像
創建一個新的鏡像,並起名字為nywlw
查看新的鏡像
運行自己創建的容器
4.刪除容器實例
5.刪除鏡像
每天發布更多新鮮有含量的技術文章、總有一款適合你。
㈢ 一個linux伺服器上怎麼安裝裝兩個docker
安裝一個docker,然後自己用命令行啟動另外一個docker
下面是一個啟動命令:
nohupdockerdaemon--selinux-enabled=false--log-driver=journald--storage-driver=overlay
-Hunix:///var/run/docker-bootstrap.sock-p/var/run/dockerbootstrap.pid
--iptables=false--ip-masq=false--bridge=none--graph=/var/lib/dockerbootstrap
2>/var/log/docker-bootstrap.log1>/dev/null&
注意幾點:
-H參數需要給出另外一個socket文件名
-p給出另外一個pid文件名
--graph 給出另外一個存放docker鏡像容器的路徑名稱
㈣ DOCKER 總結
Docker 是一個開源的 應用容器引擎 ,讓 開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然後發布到任何流行的 Linux或Windows 機器上,也可以實現虛擬化 。容器是完全使用沙箱機制,相互之間不會有任何介面。
由於本地開發好的程序往往都需要部署到伺服器上進行運行,這就導致了程序需要運行在不同的環境上,這通常是一個令人頭痛的事情。在過去,開發團隊需要清楚的告訴運維部署團隊,其所使用的全部配置文件+所有軟體環境。不過,即便如此,仍然常常發生部署失敗的狀況。
於是乎, 虛擬化 技術應運而生。開發團隊將開發好的程序在虛擬機上運行,這樣就能解決運維的問題。但是由於虛擬機技術過重的特性導致了其 資源佔用多、冗餘步驟多以及啟動慢的缺陷 。而這個時候 一種新的虛擬化技術搭配上容器化的思想 的產品便出現了,而它就是Docker。
下圖是虛擬機技術和容器化技術架構的對比。我們可以得出以下總結:
[圖片上傳失敗...(image-efadd2-1643314980201)]
]( https://upload-images.jianshu.io/upload_images/646931-4b1431b77887632f.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
於是乎相比於虛擬機技術,容器化技術具有以下 優勢:
相關網站
如下圖所示,Docker使用客戶端-伺服器(C/S)架構模式,使用遠程API來管理和創建Docker容器。伺服器端分為Docker daemon, Image和Container三個部分。此外還有Docker Registry。
下面首先來介紹一下Docker中的主要概念
Docker的運行原理如下:客戶端可以將docker命令發送到伺服器端的Docker daemon上,再由Docker damon根據指令創建、選擇或者從Docker倉庫中拉取(pull)鏡像。接著客戶端可以通過鏡像創建容器。當我們需要使用程序時,運行相應的容器即可。
小結
需要正確的理解倉儲/鏡像/容器這幾個概念 :
在外面使用容器的時候,我們不希望容器中的數據在容器被刪除後也一並刪除了,這時候我們就可以 通過使用容器數據卷,將數據儲存在本地並用Docker將其掛載到容器中,這樣我們即使刪除了容器,數據也依舊存在伺服器中,也就實現了數據持久化。
特點
容器數據卷掛載命令(-v)
Dockerfile 掛載容器數據卷
我們除了可以從倉庫中拉取鏡像以外,我們也可以 自己創建鏡像 ,這就要用到Docerfile。
dockerfile是用來構建Docker鏡像的構建文件,是由一系列命令和參數構成的腳本 。
構建步驟:
基礎知識:
流程:
說明:
在實際場景中,我們會遇到 多個Container之間通訊 的問題。而Docker網路就是用於解決此問題的技術。docker會給每個容器都分配一個ip,且容器和容器之間是可以互相訪問的。
Docker網路原理
每一個安裝了Docker的linux主機都有一個docker0的虛擬網卡。這是個橋接網卡,使用了 veth-pair 技術 。Docker使用Linux橋接,在宿主機虛擬一個Docker容器網橋(docker0),Docker啟動一個容器時會根據 Docker網橋的網段分配給容器一個IP地址,稱為Container-IP,同時Docker網橋是每個容器的默認網 關。因為在同一宿主機內的容器都接入同一個網橋,這樣容器之間就能夠通過容器的Container-IP直接通信。
Docker容器網路就很好的利用了Linux虛擬網路技術,在本地主機和容器內分別創建一個虛擬介面,並 讓他們彼此聯通(這樣一對介面叫veth pair);
Docker中的網路介面默認都是虛擬的介面。虛擬介面的優勢就是轉發效率極高(因為Linux是在內核中 進行數據的復制來實現虛擬介面之間的數據轉發,無需通過外部的網路設備交換),對於本地系統和容 器系統來說,虛擬介面跟一個正常的乙太網卡相比並沒有區別,只是他的速度快很多。
[圖片上傳中...(image-41d42a-1642627027452-2)]
Docker Compose是一個用於定義並運行多容器應用的工具 。
Docker Compose的 步驟如下 :
NOTE: Compose :重要的概念。
docker-compose.yml編寫
Note: docker-compose會自動為多容器之間創建網路,保證通訊。
Docker Swarm 是Docker 的集群管理工具。 它將 Docker 主機池轉變為單個虛擬 Docker 主機。 Docker Swarm 提供了標準的 Docker API,所有任何已經與 Docker 守護程序通信的工具都可以使用 Swarm 輕松地擴展到多個主機。
Docker 是一個開源的 應用容器引擎 ,它的出現大大簡化了運維的難度,提高了運維效率。過去我們需要在伺服器上安裝程序所需要的所有依賴,而如今我們只需要編寫好docker-compose和Dockefile的腳本,就可以使程序一鍵跑通。在企業級的應用中,我們必然會驚顫使用到Docker和容器化技術。
狂神說