一. docker容器和虛擬機對比
1. docker容器虛擬化
(1). 容器就是將軟件打包成標准化單元,以用於開發、交付和部署。
(2). 容器鏡像是輕量的、可執行的獨立軟件包 ,包含軟件運行所需的所有內容:代碼、運行時環境、系統工具、系統庫和設置。
(3). 容器化軟件在任何環境中都能夠始終如一地運行。
(4). 容器賦予了軟件獨立性,使其免受外在環境差異的影響,從而有助於減少團隊間在相同基礎設施上運行不同軟件時的沖突。
如圖:
2. docker容器和傳統虛擬機比較
(1). 相同點
docker容器和虛擬機具有相同的資源隔離優勢和分配優勢。
(2). 不同點
A. 容器虛擬化的是操作系統,虛擬機虛擬化的是硬件。
B. 傳統虛擬機可以運行不同的操作系統,容器只能運行同一類型操作系統。
二. 私有倉庫的搭建
1. 什么是私有倉庫
Docker官方的Docker hub(https://hub.docker.com)是一個用於管理公共鏡像的倉庫,我們可以從上面拉取鏡像 到本地,也可以把我們自己的鏡像推送上去。但是,有時候我們的服務器無法訪問互聯網,或者你不希望將自己的鏡 像放到公網當中,那么我們就需要搭建自己的私有倉庫來存儲和管理自己的鏡像。
PS:像國內的阿里雲、騰訊雲等等都既提供公有倉庫,也提供私有倉庫。
2. 搭建自己的私有倉庫
(1). 下載私有倉庫鏡像
docker pull registry
(2). 啟動私有倉庫容器
docker run -id --name=myRegistry -p 5000:5000 registry
PS:私有倉庫容器對外開放的端口為5000
(3). 打開瀏覽器 輸入地址http://私有倉庫服務器ip:5000/v2/_catalog
看到 {"repositories":[]} 表示私有倉庫 搭建成功
(4). 配置私有倉庫的地址
修改daemon.json ,【vim /etc/docker/daemon.json 】 在上述文件中添加一個key,保存退出。用於讓 docker 信任私有倉庫地址;
{ "insecure-registries":["私有倉庫服務器ip:5000"] }
如圖:
(5). 重啟docker 服務
systemctl restart docker #重啟docker
docker start myRegistry #啟動私有倉庫鏡像
3. 私有倉庫鏡像的上傳和下載
前提配置:
(1). 宿主機要先配置私有倉庫的地址為目標私有倉庫,必須是配置https
A. 指令:vi /etc/docker/daemon.json, 其中 https://119.45.174.249:5000 是私有倉庫地址
{ "registry-mirrors": ["https://ijmr3it2.mirror.aliyuncs.com"], "insecure-registries": ["https://119.45.174.249:5000"] }
B. 重啟
systemctl daemon-reload
systemctl restart docker
(2). 必須要登錄,后進行上傳和下載
docker login 119.45.174.249:5000
如圖:
1. 上傳
# 1、標記鏡像為私有倉庫的鏡像 docker tag redis:5.0 私有倉庫服務器IP:5000/redis:5.0 # 2、上傳標記的鏡像 docker push 私有倉庫服務器IP:5000/redis:5.0
注意:只寫ip,不寫http://
如圖:
2. 下載
#拉取鏡像 docker pull 私有倉庫服務器ip:5000/redis:5.0
如圖:
三. 阿里雲容器鏡像服務
1. 鏡像加速服務
centos和ubuntu系統直接復制下面代碼執行。
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://ijmr3it2.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
配置完成,進行查看,如下圖,說明配置成功。
2. 私有倉庫的配置
(1). 前提
A. 先配置一個倉庫密碼,此密碼不是案例雲的登錄密碼。(還要注意所在的地區)
B. 創建命名空間,后續上傳的鏡像可以位於不同的命名空間下。
如:ypfstore為私有倉庫,ypfstore2為公有倉庫。
2. 上傳
(1). 登錄
sudo docker login --username=xxxxxx registry.cn-shenzhen.aliyuncs.com
上述指令來源於:
如圖:
同一個鏡像可以上傳多個不同版本:
(2) 把本機的redis:5.0鏡像上傳到阿里雲ypfstore命名空間下
A. 先做tag標記
sudo docker tag redis:5.0 registry.cn-shenzhen.aliyuncs.com/ypfstore/redis:5.0
B. push上傳
sudo docker push registry.cn-shenzhen.aliyuncs.com/ypfstore/redis:5.0
如下圖:
去阿里雲平台查看上傳的鏡像,並且詳情中有完善的該鏡像操作指令,比如下載、修改等等。
3. 下載
(1). 登錄(同上)
sudo docker login --username=xxxxxx registry.cn-shenzhen.aliyuncs.com
(2). 執行下載指令
sudo docker pull registry.cn-shenzhen.aliyuncs.com/ypfstore/redis:5.0
如下圖:
3. 公共倉庫的使用
要求:上述ypfstore2命名空間對應的就是公共倉庫,現在我要把本機nginx:latest上傳到阿里雲的ypfstore2公共倉庫(要求阿里雲中顯示為1.0版本),不需要登錄,直接先標記,后上傳即可。
(1). 上傳
#標記 sudo docker tag nginx:latest registry.cn-shenzhen.aliyuncs.com/ypfstore2/nginx:1.0 #上傳 sudo docker push registry.cn-shenzhen.aliyuncs.com/ypfstore2/nginx:1.0
如下圖:
去阿里雲中查看:
(2). 下載
無需登錄,直接執行下載指令
sudo docker pull registry.cn-shenzhen.aliyuncs.com/ypfstore2/nginx:1.0
如下圖:
!
- 作 者 : Yaopengfei(姚鵬飛)
- 博客地址 : http://www.cnblogs.com/yaopengfei/
- 聲 明1 : 如有錯誤,歡迎討論,請勿謾罵^_^。
- 聲 明2 : 原創博客請在轉載時保留原文鏈接或在文章開頭加上本人博客地址,否則保留追究法律責任的權利。