Home Operation and Maintenance Linux Operation and Maintenance How to build an efficient Docker image warehouse on a Linux server?

How to build an efficient Docker image warehouse on a Linux server?

Jul 29, 2023 pm 05:13 PM
linux docker Mirror warehouse

How to build an efficient Docker image warehouse on a Linux server?

With the development and popularity of containerization technology, Docker has become one of the most popular containerization solutions. When using Docker to build and manage large-scale applications, an efficient Docker image warehouse is very important. Not only does it speed up the deployment and scaling process, it also improves developer productivity. In this article, we will introduce how to establish an efficient Docker image warehouse on a Linux server and provide corresponding code examples.

  1. Install Docker and Docker Registry

First, we need to install Docker and Docker Registry on the Linux server. Docker can be installed through the official installation script. Please refer to Docker's official documentation for the specific process. After installing Docker, we can use the following command to install Docker Registry:

$ docker run -d -p 5000:5000 --restart=always --name registry registry:2
Copy after login

This command will start a Docker Registry container on the server and map the 5000 port in the container to the server's 5000 port.

  1. Configuring Docker Registry

After installing Docker Registry, we need to do some configuration to make it more efficient. First, we need to modify the Docker configuration file to allow insecure image transfers. Edit the /etc/docker/daemon.json file and add the following content:

{
  "insecure-registries" : ["your-registry-url:5000"]
}
Copy after login

where your-registry-url is the URL of your mirror warehouse (for example : my-registry.com).

Next, we need to reload Docker’s configuration file for the changes to take effect:

$ systemctl daemon-reload
$ systemctl restart docker
Copy after login
  1. Create and upload the image

Now, we can Create a Docker image and upload it to our image warehouse. First, we need to build a Docker image. Here is a sample Dockerfile:

FROM ubuntu:latest
RUN apt-get update && apt-get install -y python3
COPY app.py /app.py
CMD ["python3", "/app.py"]
Copy after login

Create a file called app.py in the same directory and add some code. After that, use the following command to build the image:

$ docker build -t your-registry-url:5000/my-image:1.0 .
Copy after login

Replace your-registry-url with the URL of your registry.

After the build is completed, we can use the following command to upload the image to the mirror warehouse:

$ docker push your-registry-url:5000/my-image:1.0
Copy after login

This will push the built image to our mirror warehouse.

  1. Pull the image from the mirror warehouse

When we need to deploy our application on other servers, we can pull the required image from the mirror warehouse. The following is the command to pull the image:

$ docker pull your-registry-url:5000/my-image:1.0
Copy after login

This will pull the corresponding version of the image from the image warehouse.

  1. Using a private image repository

In order to protect the security of our applications and data, we can use access control to restrict access to our private image repository. The following is an example of using Basic Authentication to control access:

First, we need to create a password file to store usernames and passwords. Use the following command to create a password file:

$ docker run --rm --entrypoint htpasswd registry:2 -Bbn your-username your-password > auth/htpasswd
Copy after login

where your-username and your-password are the username and password you defined.

Next, we need to modify the startup command of Docker Registry to specify the use of access control configuration. Start the Docker Registry container using the following command:

$ docker run -d -p 5000:5000 --restart=always --name registry 
             -v /path/to/auth:/auth 
             -e "REGISTRY_AUTH=htpasswd" 
             -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" 
             -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" 
             registry:2
Copy after login

Among them, replace /path/to/auth with the path to your stored password file.

Now, your private mirror repository has been set up with basic authentication, and only authorized users can access it.

Summary

In this article, we introduced how to establish an efficient Docker image warehouse on a Linux server. We first installed and configured Docker and Docker Registry, and then demonstrated how to use the image warehouse through examples of building and uploading images. Finally, we covered how to use basic authentication to secure a registry.

By establishing an efficient Docker image warehouse, we can better manage and deploy large-scale applications and improve development and operation and maintenance efficiency. I hope this article is helpful to you and can be used in practical applications.

The above is the detailed content of How to build an efficient Docker image warehouse on a Linux server?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What computer configuration is required for vscode What computer configuration is required for vscode Apr 15, 2025 pm 09:48 PM

VS Code system requirements: Operating system: Windows 10 and above, macOS 10.12 and above, Linux distribution processor: minimum 1.6 GHz, recommended 2.0 GHz and above memory: minimum 512 MB, recommended 4 GB and above storage space: minimum 250 MB, recommended 1 GB and above other requirements: stable network connection, Xorg/Wayland (Linux)

Linux Architecture: Unveiling the 5 Basic Components Linux Architecture: Unveiling the 5 Basic Components Apr 20, 2025 am 12:04 AM

The five basic components of the Linux system are: 1. Kernel, 2. System library, 3. System utilities, 4. Graphical user interface, 5. Applications. The kernel manages hardware resources, the system library provides precompiled functions, system utilities are used for system management, the GUI provides visual interaction, and applications use these components to implement functions.

How to run java code in notepad How to run java code in notepad Apr 16, 2025 pm 07:39 PM

Although Notepad cannot run Java code directly, it can be achieved by using other tools: using the command line compiler (javac) to generate a bytecode file (filename.class). Use the Java interpreter (java) to interpret bytecode, execute the code, and output the result.

How to check the warehouse address of git How to check the warehouse address of git Apr 17, 2025 pm 01:54 PM

To view the Git repository address, perform the following steps: 1. Open the command line and navigate to the repository directory; 2. Run the "git remote -v" command; 3. View the repository name in the output and its corresponding address.

vscode terminal usage tutorial vscode terminal usage tutorial Apr 15, 2025 pm 10:09 PM

vscode built-in terminal is a development tool that allows running commands and scripts within the editor to simplify the development process. How to use vscode terminal: Open the terminal with the shortcut key (Ctrl/Cmd). Enter a command or run the script. Use hotkeys (such as Ctrl L to clear the terminal). Change the working directory (such as the cd command). Advanced features include debug mode, automatic code snippet completion, and interactive command history.

How to use VSCode How to use VSCode Apr 15, 2025 pm 11:21 PM

Visual Studio Code (VSCode) is a cross-platform, open source and free code editor developed by Microsoft. It is known for its lightweight, scalability and support for a wide range of programming languages. To install VSCode, please visit the official website to download and run the installer. When using VSCode, you can create new projects, edit code, debug code, navigate projects, expand VSCode, and manage settings. VSCode is available for Windows, macOS, and Linux, supports multiple programming languages ​​and provides various extensions through Marketplace. Its advantages include lightweight, scalability, extensive language support, rich features and version

Where to write code in vscode Where to write code in vscode Apr 15, 2025 pm 09:54 PM

Writing code in Visual Studio Code (VSCode) is simple and easy to use. Just install VSCode, create a project, select a language, create a file, write code, save and run it. The advantages of VSCode include cross-platform, free and open source, powerful features, rich extensions, and lightweight and fast.

laravel installation code laravel installation code Apr 18, 2025 pm 12:30 PM

To install Laravel, follow these steps in sequence: Install Composer (for macOS/Linux and Windows) Install Laravel Installer Create a new project Start Service Access Application (URL: http://127.0.0.1:8000) Set up the database connection (if required)

See all articles