<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Images on Shaowen Chen's Website</title><link>https://www.chenshaowen.com/en/tags/images/</link><description>Recent content in Images on Shaowen Chen's Website</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>&amp;copy;2016 - {year}, All Rights Reserved.</copyright><lastBuildDate>Mon, 28 Jul 2025 00:00:00 +0000</lastBuildDate><sy:updatePeriod>weekly</sy:updatePeriod><atom:link href="https://www.chenshaowen.com/en/tags/images/atom.xml" rel="self" type="application/rss+xml"/><item><title>Deploying Dragonfly on a Kubernetes Cluster</title><link>https://www.chenshaowen.com/en/blog/deploy-dragonfly-on-kubernetes.html</link><pubDate>Mon, 28 Jul 2025 00:00:00 +0000</pubDate><atom:modified>Mon, 28 Jul 2025 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/deploy-dragonfly-on-kubernetes.html</guid><description>1. Deploy NFS Storage 1.1 Configure the NFS Service on the Storage Node Install the NFS service on the storage node 1 apt-get install -y nfs-kernel-server Start the NFS service and enable it at boot 1 systemctl start nfs-server.service &amp;amp; systemctl enable nfs-server.service Configure the NFS shared directory 1 mkdir -p /data/nfs 1 vim /etc/exports /data/nfs *(rw,sync,no_root_squash,no_all_squash) Restart the NFS service 1 systemctl restart nfs-server.</description><dc:creator>微信公众号</dc:creator><category>Kubernetes</category><category>Dragonfly</category><category>Images</category><category>Image Acceleration</category><category>AI</category><category>Operations</category></item><item><title>Building Multi-Arch Images with Nerdctl</title><link>https://www.chenshaowen.com/en/blog/use-nerdctl-to-build-multi-architecture-images.html</link><pubDate>Fri, 17 Jan 2025 00:00:00 +0000</pubDate><atom:modified>Fri, 17 Jan 2025 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/use-nerdctl-to-build-multi-architecture-images.html</guid><description>1. Installing Nerdctl Install Opscli 1 curl -sfL https://raw.githubusercontent.com/shaowenchen/ops/main/getcli.sh |VERSION=latest sh - Install Nerdctl 1 opscli task -f install-nerdctl --arch amd64 2. BuildKit Download Buildkit 1 wget https://github.com/moby/buildkit/releases/download/v0.19.0-rc2/buildkit-v0.19.0-rc2.linux-amd64.tar.gz Install Buildkit 1 2 tar xvf buildkit-*.tar.gz mv bin/* /usr/local/bin/ Configure Buildkitd 1 mkdir -p /etc/buildkit /data/buildkit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cat &amp;gt; /etc/buildkit/buildkitd.</description><dc:creator>微信公众号</dc:creator><category>Multi-Arch</category><category>Images</category><category>CI</category><category>Nerdctl</category><category>Kubernetes</category><category>Operations</category><category>Learning</category><category>CICD</category><category>containerd</category><category>Build</category></item><item><title>Common AI Base Images and Startup Commands</title><link>https://www.chenshaowen.com/en/blog/common-ai-base-images-and-run-command.html</link><pubDate>Thu, 28 Mar 2024 00:01:00 +0000</pubDate><atom:modified>Thu, 28 Mar 2024 00:01:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/common-ai-base-images-and-run-command.html</guid><description>1. What the Image Tag Suffixes Mean base/cuda: includes the CUDA runtime
runtime: builds on base, adding the CUDA math libraries and the NCCL and cuDNN runtimes
devel: builds on runtime, adding headers and the development tools used to build CUDA images; particularly useful for multi-stage builds
cuddn: builds on the above, adding the cuDNN neural network acceleration library</description><dc:creator>微信公众号</dc:creator><category>AI</category><category>Images</category><category>Containers</category><category>Docker</category><category>GPU</category><category>LLM</category><category>Operations</category><category>R&amp;D</category></item><item><title>Distributing Cluster Images with Dragonfly V2</title><link>https://www.chenshaowen.com/en/blog/distributing-image-with-dragonfly-v2.html</link><pubDate>Sat, 13 Jan 2024 11:22:55 +0000</pubDate><atom:modified>Sat, 13 Jan 2024 11:22:55 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/distributing-image-with-dragonfly-v2.html</guid><description>1. Introduction to Dragonfly The Dragonfly documentation at https://d7y.io/zh/docs/ already covers things in detail. Here is just a brief introduction to the main components of V2:
Manager, which provides the UI, user management, cluster monitoring, task management, and other features Scheduler, which schedules traffic between Peers and provides preheating and other features Seed Peer, the back-to-source node used to download data from origin sites (Harbor, Docker.</description><dc:creator>微信公众号</dc:creator><category>AI</category><category>Dragonfly</category><category>Kubernetes</category><category>Images</category><category>Image</category><category>Nydus</category><category>Configuration</category><category>Practice</category><category>Operations</category></item><item><title>Nydus Lazy-Loading Image Configuration and Practice</title><link>https://www.chenshaowen.com/en/blog/nydus-configuration-and-practice.html</link><pubDate>Sat, 06 Jan 2024 11:22:55 +0000</pubDate><atom:modified>Sat, 06 Jan 2024 11:22:55 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/nydus-configuration-and-practice.html</guid><description>Statistics show that most files inside a container are never used. Based on this characteristic, Nydus defines a custom filesystem in the Rafs format, enabling on-demand loading of image files to solve the slow startup and storage consumption caused by large images. In AI scenarios, whether for inference or training, images often start at several GB, or even tens of GB, so Nydus is very well suited.</description><dc:creator>微信公众号</dc:creator><category>AI</category><category>Nydus</category><category>Docker</category><category>Images</category><category>Configuration</category><category>Practice</category><category>Operations</category></item><item><title>Troubleshooting Slow IO When Building Images</title><link>https://www.chenshaowen.com/en/blog/troubleshoot-slow-io-when-building-dockerfile.html</link><pubDate>Thu, 02 Feb 2023 00:00:00 +0000</pubDate><atom:modified>Thu, 02 Feb 2023 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/troubleshoot-slow-io-when-building-dockerfile.html</guid><description>1. The Problem Project details:
File size 5.6 GB File count 529352 Dockerfile
1 2 3 FROM golang:1.13 COPY ./ /go/src/code The build command and its output are as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 time DOCKER_BUILDKIT=1 docker build --no-cache -t test:v3 -f Dockerfile .</description><dc:creator>微信公众号</dc:creator><category>Docker</category><category>Images</category><category>CICD</category><category>Build</category><category>Troubleshooting</category><category>Operations</category></item><item><title>Run mv Is Slower Than cp in a Dockerfile</title><link>https://www.chenshaowen.com/en/blog/run-mv-is-slower-than-cp-in-dockerfile.html</link><pubDate>Mon, 30 Jan 2023 00:00:00 +0000</pubDate><atom:modified>Mon, 30 Jan 2023 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/run-mv-is-slower-than-cp-in-dockerfile.html</guid><description>Unlike on CentOS or Ubuntu, where we feel that mv is faster than cp, when you build an image with a Dockerfile, using Run cp is faster than Run mv. This post presents the test and verification data behind that.
1. Test Setup Machine environment Ubuntu 20.04.1 LTS
32C</description><dc:creator>微信公众号</dc:creator><category>Docker</category><category>Containers</category><category>CICD</category><category>Images</category><category>Operations</category></item><item><title>How to Hijack docker.io Image Traffic to a Private Repository</title><link>https://www.chenshaowen.com/en/blog/hijack-docker-io-req-to-private-repository.html</link><pubDate>Mon, 18 Jul 2022 00:00:00 +0000</pubDate><atom:modified>Mon, 18 Jul 2022 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/hijack-docker-io-req-to-private-repository.html</guid><description>1. Self-signing a *.docker.io Domain Certificate 1.1 Creating a CA Certificate Generate the CA certificate private key 1 openssl genrsa -out ca.key 4096 Generate the CA certificate 1 2 3 4 openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj &amp;#34;/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=chenshaowen.com&amp;#34; \ -key ca.key \ -out ca.crt 1.2 Creating a *.</description><dc:creator>微信公众号</dc:creator><category>Jenkins</category><category>Kubernetes</category><category>Docker</category><category>Images</category><category>Operations</category><category>Security</category></item><item><title>An Image Management and Distribution Scheme Based on Harbor and Registry</title><link>https://www.chenshaowen.com/en/blog/a-image-management-and-distribution-case-based-on-harbor-and-registry.html</link><pubDate>Sat, 16 Jul 2022 00:00:00 +0000</pubDate><atom:modified>Sat, 16 Jul 2022 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/a-image-management-and-distribution-case-based-on-harbor-and-registry.html</guid><description>1. The Challenge of a Cross-Region Harbor If all you need is to store image data in a simple way, Registry is an excellent choice as an image repository. Registry not only supports multiple storage backends, but can also be configured with HTTPS certificates and access credentials. Worth noting: Harbor</description><dc:creator>微信公众号</dc:creator><category>Harbor</category><category>Registry</category><category>Images</category><category>Distribution</category><category>Kubernetes</category><category>Operations</category><category>Learning</category><category>Multi-Region</category><category>Acceleration</category><category>CICD</category></item><item><title>A Global Image Distribution Network</title><link>https://www.chenshaowen.com/en/blog/a-global-images-distribution-network.html</link><pubDate>Sun, 27 Mar 2022 14:00:00 +0000</pubDate><atom:modified>Sun, 27 Mar 2022 14:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/a-global-images-distribution-network.html</guid><description>1. Global Network Planning Many global, multi-region infrastructures do not put much thought into network planning at the outset. Once the business grows complex enough, they are forced into network adjustments and optimization. Yet any major network change has a huge impact on the business. In the end you are stuck in a dilemma, able to do nothing but invest more people, carry the baggage of history, and walk along the edge of a cliff again and again.</description><dc:creator>微信公众号</dc:creator><category>Images</category><category>Harbor</category><category>Network</category><category>Kubernetes</category><category>Operations</category><category>Distribution</category><category>Multi-Region</category><category>Learning</category></item><item><title>How to Set Up a Private Registry Mirror</title><link>https://www.chenshaowen.com/en/blog/how-to-run-a-private-registry-mirror.html</link><pubDate>Thu, 29 Apr 2021 00:00:00 +0000</pubDate><atom:modified>Thu, 29 Apr 2021 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/how-to-run-a-private-registry-mirror.html</guid><description>A Docker mirror can only accelerate images from docker.io, not images from private registries.
1. Why You Need a Private Registry Mirror Rate limiting on the public network Docker Hub pull rate limits Reduce image pull time 2. Create a Registry Image Acceleration Service Generate a configuration file version: 0.</description><dc:creator>微信公众号</dc:creator><category>Docker</category><category>Containers</category><category>Images</category><category>Operations</category><category>Registry</category><category>Acceleration</category></item><item><title>An Old Tree Blooms Anew - Cloud Native Buildpacks</title><link>https://www.chenshaowen.com/en/blog/a-sample-intro-to-cloud-native-buildpacks.html</link><pubDate>Fri, 05 Feb 2021 00:00:00 +0000</pubDate><atom:modified>Fri, 05 Feb 2021 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/a-sample-intro-to-cloud-native-buildpacks.html</guid><description>1. Buildpacks, an Old Tree Blooms Anew The Buildpacks project was first started by Heroku in 2011 and was widely adopted by PaaS platforms such as Cloud Foundry. In an earlier document, Buildpack for PaaS Deployment, I demonstrated how to deploy a Django application to Heroku.
The shortcoming of Buildpacks was that the artifact it produced was in Droplet format, which could not be adapted directly to container platforms.</description><dc:creator>微信公众号</dc:creator><category>DevOps</category><category>Buildpack</category><category>Containers</category><category>Images</category></item><item><title>Daemon-less Image Build Tool: Kaniko</title><link>https://www.chenshaowen.com/en/blog/the-daemon-less-tools-of-kaniko.html</link><pubDate>Fri, 11 Dec 2020 08:00:00 +0000</pubDate><atom:modified>Fri, 11 Dec 2020 08:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/the-daemon-less-tools-of-kaniko.html</guid><description>1. daemon-less Image Build Tools 1.1 What Is a daemon-less Image Build Tool In a CICD pipeline, image builds come up often, and the conventional approach is to build with Docker in Docker or Docker out of Docker. For details, see: How to Use Docker in Docker
In fact, to avoid monopolies and advance the industry, a unified OCI image format specification based on the Docker image format was defined long ago.</description><dc:creator>微信公众号</dc:creator><category>Kaniko</category><category>DevOps</category><category>Images</category><category>CICD</category><category>Kubernetes</category><category>Operations</category></item><item><title>How to Bypass DockerHub Image Pull Limits</title><link>https://www.chenshaowen.com/en/blog/how-to-cross-the-limit-of-dockerhub.html</link><pubDate>Wed, 09 Dec 2020 00:00:00 +0000</pubDate><atom:modified>Wed, 09 Dec 2020 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/how-to-cross-the-limit-of-dockerhub.html</guid><description>1. DockerHub Limits In the end, there is no getting around this error:
1 Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit Starting November 2, 2020, DockerHub officially began limiting the pull rate for non-paying users:</description><dc:creator>微信公众号</dc:creator><category>Docker</category><category>Images</category><category>DockerHub</category><category>Operations</category><category>Troubleshooting</category><category>Rate Limiting</category><category>Proxy</category></item><item><title>Deploying a Hexo Static Site with a Container Image</title><link>https://www.chenshaowen.com/en/blog/deploy-static-server-by-docker-image.html</link><pubDate>Wed, 16 Sep 2020 00:00:00 +0000</pubDate><atom:modified>Wed, 16 Sep 2020 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/deploy-static-server-by-docker-image.html</guid><description>1. Why Deploy Independently with an Image Better SEO With GitHub Pages, deploying a static site is very convenient. Configure it once, and every commit deploys and updates automatically. Add jsDelivr and Cloudflare acceleration on top, and among free options it is already production-ready.
Unfortunately, Baidu&amp;rsquo;s search engine indexes GitHub Pages sites very slowly, or not at all.</description><dc:creator>微信公众号</dc:creator><category>Hexo</category><category>Docker</category><category>Images</category><category>Blog</category><category>Operations</category></item><item><title>Multi-Arch Docker Images</title><link>https://www.chenshaowen.com/en/blog/docker-image-under-multi-arch.html</link><pubDate>Sun, 05 Jul 2020 00:00:00 +0000</pubDate><atom:modified>Sun, 05 Jul 2020 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/docker-image-under-multi-arch.html</guid><description>1. Enabling Docker&amp;rsquo;s experimental Feature First, enable Docker&amp;rsquo;s experimental feature, so the commands below are available.
Edit vim ~/.docker/config.json and add the following:
1 2 3 4 { &amp;#34;experimental&amp;#34;: &amp;#34;enabled&amp;#34;, &amp;#34;debug&amp;#34;: true } Note that this is not the /etc/docker/daemon.json file, and Docker does not need to be restarted.
2. Docker Images Starting with Docker 1.</description><dc:creator>微信公众号</dc:creator><category>Docker</category><category>Images</category><category>Multi-Arch</category><category>manifest</category><category>Operations</category></item><item><title>Harbor Using a Self-Signed Certificate for HTTPS Access</title><link>https://www.chenshaowen.com/en/blog/support-https-access-harbor-using-self-signed-cert.html</link><pubDate>Sat, 18 Apr 2020 00:00:00 +0000</pubDate><atom:modified>Sat, 18 Apr 2020 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/support-https-access-harbor-using-self-signed-cert.html</guid><description>In an earlier post, Installing Harbor with Helm, I described in detail how to install Ingress and Harbor and finally push an image successfully. There the domain was publicly reachable and the certificate was issued by a certificate authority. In an intranet environment, however, we need to use an internal</description><dc:creator>微信公众号</dc:creator><category>Harbor</category><category>Kubernetes</category><category>Https</category><category>Images</category><category>Certificates</category><category>Operations</category></item><item><title>Image Management Tool -- Harbor</title><link>https://www.chenshaowen.com/en/blog/an-enterprise-class-registry-of-harbor.html</link><pubDate>Thu, 12 Sep 2019 00:00:00 +0000</pubDate><atom:modified>Thu, 12 Sep 2019 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/an-enterprise-class-registry-of-harbor.html</guid><description>1. Requirements for Building Harbor Harbor hardware requirements:
CPU, at least 2 cores, 4 cores is better Mem, at least 4 GB, 8 GB is better Disk, at least 40 GB, 160 GB is better Docker version requirements:
17.06.0 or later To build Harbor on Kubernetes, you can refer to the documentation, Building Harbor with Helm.</description><dc:creator>微信公众号</dc:creator><category>Harbor</category><category>Images</category><category>Containers</category><category>Kubernetes</category><category>Operations</category></item><item><title>Using S2I to Build Cloud Native Applications</title><link>https://www.chenshaowen.com/en/blog/using-s2i-to-build-cloud-native-applications.html</link><pubDate>Mon, 26 Aug 2019 00:00:00 +0000</pubDate><atom:modified>Mon, 26 Aug 2019 00:00:00 +0000</atom:modified><guid>https://www.chenshaowen.com/en/blog/using-s2i-to-build-cloud-native-applications.html</guid><description>1. What Problem S2I Solves It is foreseeable that a large number of applications will be deployed as containers in the future.
Container platforms care about images and containers, while application development cares about business code, and ultimately the code needs to be deployed as an image. From code to image — that is Source To Image, or S2I.</description><dc:creator>微信公众号</dc:creator><category>S2I</category><category>Docker</category><category>Cloud Native</category><category>Images</category><category>Operations</category><category>R&amp;D</category></item></channel></rss>