Docker國內鏡像詳解

一、Docker國內鏡像源

正如我們了解到的,由於眾所周知的原因,Docker源在國內的訪問速度非常緩慢,甚至基本不能使用。因此,Docker國內鏡像源應運而生,旨在為中國開發人員提供更快速、更方便的Docker服務。由DaoCloud、網易雲等公司運營的Docker國內鏡像源逐漸成為開發者們獲取Docker鏡像的首選源。

在使用Docker命令行前,我們需要為系統設置默認的鏡像源。例如,在Ubuntu系統上,我們可以使用以下命令更改鏡像源為DaoCloud:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://dockerhub.azk8s.cn","https://hub-mirror.c.163.com","http://f1361db2.m.daocloud.io"]
}
EOF

sudo service docker restart

這裡我們配置了三個鏡像源為https://dockerhub.azk8s.cn、https://hub-mirror.c.163.com、http://f1361db2.m.daocloud.io,通過使用這樣的鏡像源我們能夠更快、更穩地下載Docker鏡像。

二、Docker國內鏡像源依舊

雖然Docker國內鏡像源在一定程度上提升了我們下載Docker鏡像的效率,但實際上它不是萬能的。在日常開發中,我們會發現此類鏡像源仍然存在明顯的缺陷。

首先,由於部分官方Docker鏡像只提供海外託管,其源檔下載時仍會受到國際網絡的影響,即使使用了國內的鏡像源,下載速度仍會很慢。

其次,由於國內鏡像源的供應商根據官方鏡像倉庫定期同步數據,因此舊鏡像依舊會存在於國內鏡像源中。如果你需要某個較新的官方鏡像版本,國內鏡像源可能就沒有這個版本。

最終,由於一些技術和法律方面的原因,一小部分Docker鏡像甚至無法同步更新,也就意味着它們永遠不會出現在國內鏡像源中。

三、Docker國內鏡像庫

為避免上述問題的存在,我們需要訪問Docker國內鏡像庫。這樣,在新版本的官方鏡像出現後,國內鏡像庫就會儘快地將其作為同步對象。同時,通過加速器從國際源中獲取最新的Docker鏡像,我們可以快速地獲得自己想要的鏡像。

典型的Docker國內鏡像庫供應商包括ChinaNetCenter、DaoCloud、網易雲等。我們可以通過使用如下命令,設置鏡像源地址為ChinaNetCenter鏡像庫:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
    "https://hub-mirror.cn-qingdao.aliyuncs.com",
    "http://f3bwrkbt.mirror.aliyuncs.com",
    "https://registry.docker-cn.com",
    "https://docker.mirrors.ustc.edu.cn"
    ]
}
EOF

sudo service docker restart

當然,不同的鏡像庫提供的服務有所區別,如支持的鏡像數量,鏡像更新速度,可選服務等。我們需要在實際使用中根據自己的需要選擇合適的鏡像庫。

四、Docker國內鏡像下載

大多數情況下,我們都會從Docker國內鏡像下載一些我們需要的鏡像。需要注意的是,我們需要下載的鏡像是存儲在不同的Docker Hub中的, 所以我們需要指定我們想要使用的鏡像源。以下是一個實際下載Docker鏡像的示例:

# 從Docker官方源下載ubuntu系統鏡像
docker pull ubuntu

# 從Aliyun鏡像源下載ubuntu系統鏡像
docker pull registry.cn-hangzhou.aliyuncs.com/library/ubuntu:latest

由於國內網絡環境的限制,必要情況下,我們可能會使用Docker鏡像加速器加快下載速度。除了前面提到的DaoCloud、網易雲、ChinaNetCenter,Docker官方也提供了自己的加速器:daemon.url。示例代碼如下:

# 設置官方Docker鏡像加速器
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "daemon.url": ["https://xx051xlg.mirror.aliyuncs.com"]
}
EOF

五、Docker國內鏡像倉庫

當我們需要構建自己的Docker鏡像並用於生產環境時,我們需要有一個安全可靠的私有鏡像倉庫。Docker提供了公共鏡像倉庫Docker Hub,但僅限於開發和測試。因此,我們需要使用私有鏡像倉庫。

常用的Docker國內鏡像倉庫提供商包括阿里雲容器鏡像服務、騰訊雲容器鏡像服務和Harbor等。

為使用私有倉庫,我們需要在Docker配置文件中進行配置。示例代碼如下:

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "insecure-registries": [":"]
}
EOF

sudo systemctl restart docker

六、Docker國內鏡像源地址及配置

這裡我們列出幾個常用的Docker國內鏡像源地址:

  • DaoCloud:https://www.daocloud.io/mirror.html
  • 網易云:https://c.163.com/hub
  • 阿里云:https://cr.console.aliyun.com/
  • 華為云:https://console.huaweicloud.com/cse/?region=cn-north-1#/engine/cloudContainerService

以下為一個可以設置Docker鏡像源地址及配置的Shell script。

#!/bin/bash

# Console output coloring
function r_colored_echo {
    echo -e "\033[31;1m${*}\033[0m"
}

function b_colored_echo {
    echo -e "\033[34;1m${*}\033[0m"
}

SRC="/etc/docker/daemon.json"
DEST="/etc/docker/daemon.json.$(date +%F-%H%M%S)"
! [ -e "$SRC" ] && r_colored_echo "$SRC does not exist." && exit 1
sudo cp "$SRC" "$DEST"
sudo sed -i '/registry-mirrors/c\\"registry-mirrors": ["https://hub-mirror.levithanxin.top","https://hub-mirror.c.163.com"]' "$SRC"
sudo systemctl daemon-reload && sudo systemctl restart docker || { r_colored_echo "Failed to restart docker daemon." && exit 1; }

七、Docker國內鏡像地址

以下為一些常用的Docker國內鏡像地址:

  • Ubuntu:registry.cn-hangzhou.aliyuncs.com/library/ubuntu:latest
  • Nginx:registry.cn-hangzhou.aliyuncs.com/library/nginx:latest
  • MySQL:registry.cn-hangzhou.aliyuncs.com/library/mysql:latest

八、Docker鏡像製作

與從Docker Hub下載鏡像類似,我們也可以使用類似的命令在Docker鏡像中安裝所需的軟件。示例代碼如下:

FROM ubuntu:18.04 

RUN apt-get update && \
    apt-get install -y vim && \
    apt-get install -y python-dev python3-dev && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

以上代碼基於Ubuntu 18.04構建一個Docker鏡像,安裝了vim和Python的開發包。你可以通過以下命令來構建鏡像:

docker build -t myimage:latest .

九、Docker教程

Docker的快速學習和深入理解需要進行大量的實踐和學習。以下是一些有用的Docker教程:

十、Docker鏡像推薦

以下是一些優秀的Docker鏡像推薦:

  • Node.js:registry.cn-hangzhou.aliyuncs.com/library/node:latest
  • Python:registry.cn-hangzhou.aliyuncs.com/library/python:latest
  • Redis:registry.cn-hangzhou.aliyuncs.com/library/redis:latest

總結

通過本文的講解,我們了解了Docker國內鏡像的定義、國內鏡像源與國內鏡像庫、國內鏡像源的優缺點、國內鏡像下載和倉庫的配置、Docker國內鏡像地址的一些使用方法以及Docker鏡像的製作和使用。同時,我們推薦了一些優秀的Docker教程和Docker鏡像。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/301023.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-29 14:19
下一篇 2024-12-29 14:19

相關推薦

  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • docker-ce-18.03.1.ce-1.el7.centos.x86_64需要pigz這個依賴的解決方案

    當我們在linux centos系統中安裝docker-ce-18.03.1.ce-1.el7.centos.x86_64時,有時可能會遇到「nothing provides pi…

    編程 2025-04-29
  • 現在鏡像站不行了,怎麼辦?

    現在鏡像站不行了是很常見的問題,本文將從多個方面對此問題進行詳細闡述,為大家提供解決方案。 一、檢查網絡環境 鏡像站不通常見的原因之一是網絡問題,可能是個人網絡不穩定,也可能是IS…

    編程 2025-04-29
  • 如何解決Docker+k8s報錯413 Request Entity Too Large

    對於使用Docker容器和Kubernetes集群的開發人員,在處理HTTP請求時,常常會遇到413 Request Entity Too Large的報錯。這通常是由於請求的大小…

    編程 2025-04-27
  • docker-compose編寫用法介紹

    本文將詳細介紹docker-compose編寫的各個方面,包括語法、常見命令等等,旨在幫助讀者更好的了解如何使用docker-compose。 一、docker-compose的語…

    編程 2025-04-27
  • Docker 垃圾電腦的解決方案

    Docker 是一種輕量級的容器化技術,可以在一個操作系統中,同時運行多個獨立的應用。在使用 Docker 的過程中,可能會出現 Docker 佔用大量硬盤空間,導致電腦變得極其緩…

    編程 2025-04-27
  • 如何在Python中配置國內鏡像源

    如果你使用Python進行開發,那麼肯定會遇到下載模塊或庫速度慢的情況。這時,我們就可以配置國內鏡像源來解決這一問題。本文將會從多個方面來介紹如何配置國內鏡像源。 一、pip配置國…

    編程 2025-04-27
  • Docker掛載目錄–graph用法介紹

    本文將從如下幾個方面詳細闡述Docker掛載目錄–graph: 一、基本概念 在Docker中,鏡像是由一系列只讀層組成的文件系統。當我們啟動一個容器時,Docker會…

    編程 2025-04-27
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25

發表回復

登錄後才能評論