Devops 開發運維高階篇之容器管理

隱姓埋名4869發表於2022-02-24

Devops 開發運維高階篇之容器管理

安裝docker

Dockerfile映象指令碼入門製作

Harbor映象倉庫安裝及使用

 

 

不過多解釋docker直接秀基操

安裝docker:(jenkins伺服器 20.0.0.30 、Harbor 20.0.0.50 、 生產伺服器 20.0.0.60)

命令操作可以見之前我的文章:docker 介紹及安裝操作 - 隱姓埋名4869 - 部落格園 (cnblogs.com)

systemctl stop firewalld
setenforce 0
#安裝依賴包
yum -y install yum-utils device-mapper-persistent-date lvm2

#設定阿里雲映象源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安裝新版本docker
yum -y install docker-ce

#啟動並設定開機自啟動
systemctl start docker.service
systemctl enable docker.service

#映象加速下載(這裡是我的阿里雲的映象加速)
vim /etc/docker/daemon.json

{
   "registry-mirrors": ["https://au0weiai.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  }
}


#載入重啟
systemctl daemon-reload 
systemctl restart docke

#設定iPv4
vim /etc/sysctl.conf

net.ipv4.ip_forward=1

#重啟網路卡重啟docker
sysctl -p
systemctl restart network
systemctl restart docker

  

 

Dockerfile映象指令碼入門製作

Dockerfile其實就是我們用來構建Docker映象的原始碼,當然這不是所謂的程式設計原始碼,而是一些命令的組合,只要理解它的邏輯和語法格式,就可以編寫Dockerfile了。

簡單點說,Dockerfile的作用:它可以讓使用者個性化定製Docker映象。因為工作環境中的需求各式各樣,網路上的映象很難滿足實際的需求。

Dockerfile常見命令:

命令

作用

FROM image_name:tag

 

MAINTAINER user_name

宣告映象的作者

ENV key value

設定環境變數 (可以寫多條)

RUN command

編譯映象時執行的指令碼(可以寫多條)

CMD

設定容器的啟動命令

ENTRYPOINT

設定容器的入口程式

ADD source_dir/file dest_dir/file

將宿主機的檔案複製到容器內,如果是一個壓縮檔案,將會在複製後自動解壓

COPY source_dir/file dest_dir/file

和ADD相似,但是如果有壓縮檔案並不能解壓

WORKDIR path_dir

設定工作目錄

ARG

設定編譯映象時加入的引數

VOLUMN

設定容器的掛載卷

具體用法可以看官網示例

接下來我們用dockerfile製作微服務映象

我們利用Dockerfile製作一個Eureka註冊中心的映象

上傳Eureka的微服務jar包到linux 

cd ~
mkdir test
cd test
把idea打包的jar包拖進test檔案裡!

1)編寫Dockerfile:

vim Dockerfile
FROM openjdk:8-jdk-alpine 
ARG JAR_FILE
COPY ${JAR_FILE} app.jar 
EXPOSE 10086
ENTRYPOINT ["java","-jar","/app.jar"]

2) 構建映象

docker build --build-arg JAR_FILE=tensquare_eureka_server-1.0-SNAPSHOT.jar -t eureka:v1 .

3) 檢視映象是否建立成功

docker images

4) 建立容器

docker run -i --name=eureka -p 10086:10086 eureka:v1

5)訪問容器

http://20.0.0.50:10086

 

 

 

  

 

 

Harbor映象倉庫安裝及使用

Harbor是一個用於儲存和分發Docker映象的企業級Registry伺服器。

優勢:

  • 提供分層傳輸機制,優化網路傳輸  Docker映象是是分層的,而如果每次傳輸都使用全量檔案(所以用FTP的方式並不適合),顯然不經濟。必須提供識別分層傳輸的機制,以層的UUID為標識,確定  傳輸的物件。
  • 提供WEB介面,優化使用者體驗 只用映象的名字來進行上傳下載顯然很不方便,需要有一個使用者介面可以支援登陸、搜尋功能,包括區分公有、私有映象。
  • 支援水平擴充套件叢集 當有使用者對映象的上傳下載操作集中在某伺服器,需要對相應的訪問壓力作分解。
  • 良好的安全機制 企業中的開發團隊有很多不同的職位,對於不同的職位人員,分配不同的許可權, 具有更好的安全性。

 

安裝Harbor:

#把docker-compose 拖進harbor伺服器

#然後給許可權,並移動目錄

chmod +x docker-compose
mv docker-compose /usr/local/bin

#把harbor安裝包拖進去harbor伺服器然後解壓

tar zxvf harbor-offline-installer-v1.9.2.tgz -C /opt

#然後去改配置檔案

cd /opt/harbor
vim harbor.yml
hostname: 20.0.0.50
port: 85

  

 

#然後,安裝Harbor(docker要處於啟動狀態)systemctl status docker 看一下

./prepare
./install.sh

訪問:http://20.0.0.50:85
預設賬戶:admin
預設密碼:Harbor12345

 


補充:
啟動harbor
docker-compose up -d 啟動
docker-compose stop 停止
docker-compose restart 重新啟動

 

 

 

Harbor上的操作:

1) 建立專案

Harbor的專案分為公開和私有的:

公開專案:所有使用者都可以訪問,通常存放公共的映象,預設有一個library公開專案。  私有專案:只有授權使用者才可以訪問,通常存放專案本身的映象。

我們可以為微服務專案建立一個新的專案:

 

2) 建立使用者

 

 

建立的使用者為: lvbu / Lvbu1234

 

3) 給私有專案分配使用者進入tensquare專案->成員

 

角色

許可權說明

訪客

對於指定專案擁有隻讀許可權

開發人員

對於指定專案擁有讀寫許可權

維護人員

對於指定專案擁有讀寫許可權,建立 Webhooks

專案管理員

除了讀寫許可權,同時擁有使用者管理/映象掃描等管理許可權

 

 

 

4) 以新使用者登入Harbor

 

 

如何把之前建立的映象上傳到Harbor ?

 

Docker要把Harbo加入信任列表中

vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://zydiol88.mirror.aliyuncs.com"], 
"insecure-registries": ["20.0.0.50:85"]
} 

然後重啟docker

systemctl restart docker  

然後登入harbor 用之前建立的lvbu賬戶

docker login -u lvbu -p Lvbu1234 20.0.0.50:85 

然後在推送一下下:

docker push 20.0.0.50:85/tensquare/eureka:v1 

再去Harbor重新整理看一下:

 

 

 

如何拉取呢?

開一臺webserver伺服器,安裝好docker

然後修改配置:和之前的一樣的

vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://zydiol88.mirror.aliyuncs.com"], 
"insecure-registries": ["20.0.0.50:85"]
}

 

  

然後一樣~~:

先登入在拉取:

docker login -u lvbu -p Lvbu1234 20.0.0.50:85

  

登入上後直接在harbor找到專案映象然後點選複製命令

去執行就可以了:

最後檢視一下:docker images

 

 

 

相關文章