Introduction to Harbor
-
Harbor is an open source, enterprise-grade Docker Registry service that provides a secure, trusted repository for storing and managing Docker images.Harbor translates into the Chinese name "take under one's wing;live in a place;", which can be interpreted as a "living environment" or "shelter" for Docker images. Harbor was originally developed by VMware to address the security and trustworthiness issues of enterprise-level Docker image management. organizations to freely use and contribute code.Harbor is a mature, feature-rich, and secure and reliable enterprise-grade Docker Registry service that provides robust support for the deployment and management of enterprise containerized applications.
-
We in the daily use of Docker containers and management process, gradually found that the deployment of enterprise private repository is often very necessary, it can help you manage some of the enterprise's sensitive images, at the same time, due to the download speed of the Docker Hub and GFW reasons, often need to download some of the images can not be imported into the local private repository. Harbor is an excellent choice for deploying enterprise private repositories.
Harbor Features
- Role-based access control: Users and Docker image repositories are organized in "projects", where a user can have different permissions on multiple image repositories in the same namespace (project).
- mirror image reproduction: Mirrors can be replicated (synchronized) across multiple Registry instances. Especially suitable for load balancing, high availability, hybrid and multi-cloud scenarios.
- graphical user interface (GUI): Users can browse, retrieve the current Docker image repository, and manage projects and namespaces through a browser.
- AD/LDAP Support: Harbor can integrate with AD/LDAP already in place within the organization for authentication management.
- Audit management: All operations against the mirror repository can be logged retrospectively for audit management.
- internalization: Already localized in English, Chinese, German, Japanese and Russian. More languages will be added.
- RESTful API: The RESTful API provides administrators with more control over Harbor, making it easier to integrate with other management software.
- Simple deploymentThe installation tool is available both online and offline, and can also be installed to the vSphere platform (OVA method) virtual appliance.
Harbor vs. Registry
Harbor and Registry are both image repositories for Docker, but Harbor is the choice of more organizations because it has many advantages over Regisrty.
- Provide graphical management interface based on web interface, more friendly operation.
- Support access control mechanisms for users, projects and mirrors.
- You can scan the image to find vulnerabilities and improve security.
- Fully supports standardized enterprise user management such as LDAP/AD.
- Can be well integrated into the CI/CD process.
- Provide API open function, convenient for third-party system docking.
Great for teams and SMEs.
Harbor Architecture
- proxy: Corresponds to the startup component nginx, which is an nginx reverse proxy that proxies Notary client (image authentication), docker client (image upload and download) and browser access requests (Core Service) to the back-end servers.
-
UI(Core Service): corresponds to the startup component harbor-ui. the underlying data storage uses a mysql database and provides four main sub-functions.
- UI: a web administration page ui
- API: Harbor exposed API services.
- Auth: user authentication service, decode the user information in the token after authentication here; auth back-end can be connected to db, ldap, uaa three kinds of authentication implementation.
- Token Services: Responsible for issuing a token for each docker push/pull command based on the user's role in each project. If a docker client sends a request to registry without a token, registry redirects the request to the token service to create a token.
- RegistryThe Harbor has mandatory access control on mirrors, and the Registry forwards every pull/push request from every client to the token service to obtain a valid token.
- Admin Service: Corresponds to the startup component harbor-admin server. is the system's configuration management center incidentally checking storage usage. ui and jobserver need to load the adminserver configuration when they start.
- job server: Corresponds to the startup component harbor-jobservice, which is responsible for image replication and communicates with the Registry. It pulls images from one registry and pushes them to another, and logs the job_log.
- Log Collector: Corresponds to the startup component harbor-log. log aggregation component that aggregates logs together through docker's log-driver.
- DB: Corresponds to the startup component harbor-db, which is responsible for storing metadata data for projects, users, roles, replication, image_scan, access, and so on.
Harbor probably needs to consist of the following containers:
- ui (Harbor's core service).
- log (the container running rsyslog for log collection).
- mysql (database container consisting of the official mysql image).
- Nginx (using Nginx as a reverse proxy).
- registry (the official Docker registry).
- adminserver (Harbor's configuration data manager).
- jobservice (Harbor's task management service).
- redis (for storing sessions).
This article harbor installation version: harbor-offline-installer-v2.11.
Special note: Since Harbor is based on Docker Registry version V2, Docker Engine must be greater than version 20.10.10-ce+ and docker-compose must be greater than v1.18.0+!
Installing Docker
Detailed installation steps can be found in
- 《Docker knowledge and its CentOS7.9 online/offline installation use》
- 《Ubuntu 22.04 LTS Online/Offline Installation of Docker》
# Install the necessary dependency packages
root@ubuntu2204:~# apt install apt-transport-https ca-certificates curl gnupg lsb-release -y
# Add the software source of theGPGkeys anddockerroot(Ngari prefecture in Tibet, *: Mnga' ris)
root@ubuntu2204:~# curl -fsSL /docker-ce/linux/ubuntu/gpg | sudo apt-key add -
root@ubuntu2204:~# add-apt-repository "deb [arch=$(dpkg --print-architecture)] /docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Select to install a specific stable version, for example 5:25.0.5-1~ubuntu.22.04~jammy
root@ubuntu2204:~# apt-cache madison docker-ce | awk '{ print $3 }'
5:27.3.1-1~ubuntu.22.04~jammy
5:27.3.0-1~ubuntu.22.04~jammy
......
5:26.0.2-1~ubuntu.22.04~jammy
5:26.0.1-1~ubuntu.22.04~jammy
5:26.0.0-1~ubuntu.22.04~jammy
5:25.0.5-1~ubuntu.22.04~jammy
5:25.0.4-1~ubuntu.22.04~jammy
......
root@ubuntu2204:~# VERSION_STRING=5:25.0.5-1~ubuntu.22.04~jammy
root@ubuntu2204:~# apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING docker-buildx-plugin docker-compose-plugin -y
# ferret outdockertext
root@ubuntu2204:~# docker -v
Docker version 25.0.5, build 5dc9bcc
root@ubuntu2204:~#
root@ubuntu2204:~# docker version
Client: Docker Engine - Community
Version: 25.0.5
API version: 1.44
Go version: go1.21.8
Git commit: 5dc9bcc
Built: Tue Mar 19 15:05:10 2024
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 25.0.5
API version: 1.44 (minimum version 1.24)
Go version: go1.21.8
Git commit: e63daec
Built: Tue Mar 19 15:05:10 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.7.22
GitCommit: 7f7fdf5fed64eb6a7caf99b3e12efcf9d60e311c
runc:
Version: 1.1.14
GitCommit: v1.1.14-0-g2c9f560
docker-init:
Version: 0.19.0
GitCommit: de40ad0
root@ubuntu2204:~# ps -ef | grep docker
root 16048 1 0 14:56 ? 00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/
root 16245 12531 0 14:57 pts/1 00:00:00 grep --color=auto docker
# activate (a plan)|cessation|reopen|ferret out|boot up (computer)
root@ubuntu2204:~# systemctl start|stop|restart|status|enable docker
# beta (software) docker Is it installed correctly?
root@ubuntu2204:~# docker run --rm hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:d211f485f2dd1dee407a80973c8f129f00d54604d2c90732e8e320e5038a0348
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
/
For more examples and ideas, visit:
/get-started/
# 若能正常输出以上text,Then the installation is successful。
Installing the Harbor repository
Configuring HTTPS Certificates
# Generate certificate authority certificate
# 1. Generate CA certificate private key
root@ubuntu2204:~# openssl genrsa -out 4096
# 2. Generate CA certificate
root@ubuntu2204:~# openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=GD/L=GZ/O=DovOps/OU=IT/CN=" -key -out
# Parameter description:
# C, Country, for country
# ST, STate, for province
# L, Location, for city
# O, Organization, for organization, company
# OU, Organization Unit, for department.
# CN, Common Name, stands for Server Domain Name.
# Generate server certificate
# 1. Generate private key
root@ubuntu2204:~# openssl genrsa -out 4096
# 2. Generate Certificate Signing Request (CSR)
root@ubuntu2204:~# openssl req -sha512 -new -subj "/C=CN/ST=GD/L=GZ/O=DovOps/OU=IT/CN=" -key -out
# 3. Generate the x509 v3 extension file
root@ubuntu2204:~# cat > <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=
DNS.2=
EOF
# 4. Use the file to generate a certificate for your Harbor host
root@ubuntu2204:~# openssl x509 -req -sha512 -days 3650 -extfile -CA -CAkey -CAcreateserial -in -out
Certificate request self-signature ok
subject=C = CN, ST = GD, L = GZ, O = DovOps, OU = IT, CN =
# Provide certificates to Harbor and Docker
# 1. Copy the server certificate and key to the certficates folder on the Harbor host (depending on your environment)
root@ubuntu2204:~# mkdir -p /data/app/harbor/certs
root@ubuntu2204:~# cp /data/app/harbor/certs
root@ubuntu2204:~# cp /data/app/harbor/certs
# 2. Transform it for use by Docker.
root@ubuntu2204:~# openssl x509 -inform PEM -in -out
# 3. Copy the server certificate, key, and CA files to the Docker certificate folder on the Harbor host. You must first create the appropriate folder.
root@ubuntu2204:~# mkdir -p /etc/docker//
root@ubuntu2204:~# cp /etc/docker//
root@ubuntu2204:~# cp /etc/docker//
root@ubuntu2204:~# cp /etc/docker//
# 4. Restart Docker
root@ubuntu2204:~# systemctl restart docker
# Description
root@ubuntu2204:~# tree /etc/docker//
/etc/docker//
└──
├── <-- Certificate authority that signed the registry certificate
├── <-- Server certificate signed by CA
└── <-- Server key signed by CA
Download and install Harbor
- Harbor Official website address:
- Harbor github:harbor-releases
- Download offline version: [harbor-offline-installer-v2.11.】
# gainHarborLatest Stable Version
root@ubuntu2204:~# curl -s /repos/goharbor/harbor/releases/latest | grep browser_download_url | cut -d '"' -f4 | grep '.tgz'
/goharbor/harbor/releases/download/v2.11.1/harbor-offline-installer-v2.11.
/goharbor/harbor/releases/download/v2.11.1/harbor-offline-installer-v2.11.
/goharbor/harbor/releases/download/v2.11.1/harbor-online-installer-v2.11.
/goharbor/harbor/releases/download/v2.11.1/harbor-online-installer-v2.11.
# Download OfflineHarbor
root@ubuntu2204:~# wget /goharbor/harbor/releases/download/v2.11.1/harbor-offline-installer-v2.11.
root@ubuntu2204:~# tar -xf harbor-offline-installer-v2.11. -C /data/app
root@ubuntu2204:~# cd /data/app/harbor/
root@ubuntu2204:/data/app/harbor# ls
LICENSE certs harbor.v2.11. prepare
# Edit Configuration File
root@ubuntu2204:/data/app/harbor# cp
root@ubuntu2204:/data/app/harbor# vim
......
4 # DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
5 hostname: 172.16.70.162 //Setting the access address,can beip、hostname (of a networked computer),It is not possible to set127.0.0.1maybelocalhost
6
7 # http related config
8 http: //(computing) enable (a feature)http
9 # port for http, default is 80. If https enabled, this port will redirect to https port
10 port: 80 //default (setting)httpports
11
12 # https related config
13 https: //(computing) enable (a feature)https(The comment is disabled)
14 # https port for harbor, default is 443
15 port: 443
16 # The path of cert and key files for nginx
17 certificate: /data/app/harbor/certs/ //(computing) enable (a feature)时,Certificate Path(Comment if disabled)
18 private_key: /data/app/harbor/certs/ //(computing) enable (a feature)时,Private key path(Comment if disabled)
19 # enable strong ssl ciphers (default: false)
20 # strong_ssl_ciphers: false
......
46 # Remember Change the admin password from UI after launching Harbor.
47 harbor_admin_password: Harbor@54321 //modificationsharborlogin password
......
65 # The default data volume
66 data_volume: /data/app/harbor/data //modificationsharborWarehouse Data Catalog(mountingHarboris automatically created when the)
......
164 # The directory on your host that store log
165 location: /data/app/harbor/log/harbor //modifications日志路径(mountingHarboris automatically created when the)
......
# mounting并启动trivyVulnerability scanning tools
root@ubuntu2204:/data/app/harbor# ./ --with-trivy
[Step 0]: checking if docker is installed ...
Note: docker version: 25.0.5
[Step 1]: checking docker-compose is installed ...
Note: Docker Compose version v2.29.7
[Step 2]: loading Harbor images ...
......
[Step 3]: preparing environment ...
[Step 4]: preparing harbor configs ...
prepare base dir is set to /data/app/harbor
......
[Step 5]: starting Harbor ...
......
✔ ----Harbor has been installed and started successfully.---- # 提示mounting成功
root@ubuntu2204:/data/app/harbor# ls
LICENSE certs common data harbor.v2.11. log prepare
# View the runningharborRelated containers(It's supposed to start10container)
root@ubuntu2204:/data/app/harbor# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
545f561eabfd goharbor/harbor-jobservice:v2.11.1 "/harbor/entrypoint.…" About a minute ago Up About a minute (healthy) harbor-jobservice
85e7e42c1ea4 goharbor/nginx-photon:v2.11.1 "nginx -g 'daemon of…" About a minute ago Up About a minute (healthy) 0.0.0.0:80->8080/tcp, \
:::80->8080/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp nginx
938f3c7392ee goharbor/trivy-adapter-photon:v2.11.1 "/home/scanner/entry…" About a minute ago Up About a minute (healthy) trivy-adapter
8e12aab73943 goharbor/harbor-core:v2.11.1 "/harbor/entrypoint.…" About a minute ago Up About a minute (healthy) harbor-core
c8d115b85841 goharbor/harbor-db:v2.11.1 "/docker-entrypoint.…" About a minute ago Up About a minute (healthy) harbor-db
30c6ab0f77c6 goharbor/harbor-registryctl:v2.11.1 "/home/harbor/start.…" About a minute ago Up About a minute (healthy) registryctl
ad0ec6ffdfb8 goharbor/redis-photon:v2.11.1 "redis-server /etc/r…" About a minute ago Up About a minute (healthy) redis
b35f315c7932 goharbor/registry-photon:v2.11.1 "/home/harbor/entryp…" About a minute ago Up About a minute (healthy) registry
2edff162d014 goharbor/harbor-portal:v2.11.1 "nginx -g 'daemon of…" About a minute ago Up About a minute (healthy) harbor-portal
e6736ea4ca01 goharbor/harbor-log:v2.11.1 "/bin/sh -c /usr/loc…" About a minute ago Up About a minute (healthy) 127.0.0.1:1514->10514/tcp harbor-log
# ferret outdocker相关ports
root@ubuntu2204:/data/app/harbor# netstat -ntpl | grep docker
tcp 0 0 127.0.0.1:1514 0.0.0.0:* LISTEN 17754/docker-proxy
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 18387/docker-proxy
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 18427/docker-proxy
tcp6 0 0 :::443 :::* LISTEN 18398/docker-proxy
tcp6 0 0 :::80 :::* LISTEN 18436/docker-proxy
# ferret out本机IP
root@ubuntu2204:/data/app/harbor# hostname -I
172.16.70.162 172.17.0.1 172.18.0.1
Install docker-compose
- github download address.compose-releases
- Download: [docker-compose-v2.29.7-linux-x86_64】
root@ubuntu2204:~# VERSION_COMPOSE=v2.29.7
root@ubuntu2204:~# curl -L "/docker/compose/releases/download/$VERSION_COMPOSE/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# delegate execution authority
root@ubuntu2204:~# chmod +x /usr/local/bin/docker-compose
root@ubuntu2204:~# docker-compose -v
Docker Compose version v2.29.7
root@ubuntu2204:~# docker-compose -f /data/app/harbor/ ps
WARN[0000] /data/app/harbor/: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
harbor-core goharbor/harbor-core:v2.11.1 "/harbor/entrypoint.…" core About a minute ago Up About a minute (healthy)
harbor-db goharbor/harbor-db:v2.11.1 "/docker-entrypoint.…" postgresql About a minute ago Up About a minute (healthy)
harbor-jobservice goharbor/harbor-jobservice:v2.11.1 "/harbor/entrypoint.…" jobservice About a minute ago Up About a minute (healthy)
harbor-log goharbor/harbor-log:v2.11.1 "/bin/sh -c /usr/loc…" log About a minute ago Up About a minute (healthy) 127.0.0.1:1514->10514/tcp
harbor-portal goharbor/harbor-portal:v2.11.1 "nginx -g 'daemon of…" portal About a minute ago Up About a minute (healthy)
nginx goharbor/nginx-photon:v2.11.1 "nginx -g 'daemon of…" proxy About a minute ago Up About a minute (healthy) 0.0.0.0:80->8080/tcp, \
[::]:80->8080/tcp, 0.0.0.0:443->8443/tcp, [::]:443->8443/tcp
redis goharbor/redis-photon:v2.11.1 "redis-server /etc/r…" redis About a minute ago Up About a minute (healthy)
registry goharbor/registry-photon:v2.11.1 "/home/harbor/entryp…" registry About a minute ago Up About a minute (healthy)
registryctl goharbor/harbor-registryctl:v2.11.1 "/home/harbor/start.…" registryctl About a minute ago Up About a minute (healthy)
trivy-adapter goharbor/trivy-adapter-photon:v2.11.1 "/home/scanner/entry…" trivy-adapter 18 minutes ago Up 4 minutes (healthy)
# take note of:If the configuration is modified,To execute the"./prepare"command to configure loading,Then reboot.harborservice。
# cessation|activate (a plan)|reopen
root@ubuntu2204:~# docker-compose stop|start|restart
# additionally:
# docker-compose down -v # cessation并删除容器(Data is retained in the file system,So no data is lost)
# docker-compose up -d # 创建并activate (a plan)容器
Change admin password
# 1. If you want to change your harbor login password, it is best to do so directly from the harbor web interface.
# 2. If you forget your harbor web password, it is recommended that you delete the data source database and redeploy it.
# docker-compose down -v
# rm -rf /data/app/harbor/data/database
# vim # Reset or change the password here
# docker-compose up -d
- Modify the hosts file of your local WIN computer, and do the domain name resolution of harbor hosting.
172.16.70.162
172.16.70.162
- Download the CA certificate named "" to the local WIN computer, the browser then import the certificate
- Domain Access:
- IP Access:
https://172.16.70.162
- Domain Access:
- Default account: admin , Password: Harbor@54321 (configured in correspondence)
Using the Harbot repository
It is a good idea to create a "project" in the Harbor web interface (or use the default "library" project), which is both public and private:
- Public: All users have read access to public items.
- Private: Private projects can only be accessed by people with specific user rights.
For example, if you create a public project "202411_public" and click on it, you can see the information prompt of the push command.
-
Mirror tagging commands:
docker tag image name:tag harbot repository address / repository project name / image name:tag
- docker tag SOURCE_IMAGE[:TAG] 172.16.70.162/202411_public/REPOSITORY[:TAG]
-
Commands to push to the harbot repository:
docker push harbot repository address/repository project name/image name:label
- docker push 172.16.70.162/202411_public/REPOSITORY[:TAG]
-
Command to pull mirrors from the harbot repository:
docker pull harbot repository address/repository project name/image name:tags
- docker pull 172.16.70.162/202411_public/REPOSITORY[:TAG]
harbor login mirror push/pull
# Login Error
root@ubuntu2204:~# docker login 172.16.70.162
Username: admin
Password:
Error response from daemon: Get "http://172.16.70.162/v2/": dial tcp 172.16.70.162:80: connect: connection refused
# method settle an issue
root@ubuntu2204:~# cat /etc/docker/
{
"registry-mirrors": [
"",
"",
"",
],
"insecure-registries": ["172.16.70.162"] # Add this line
}
# Reboot after modificationdocker, reopenHarborservice
root@ubuntu2204:~# systemctl daemon-reload && systemctl restart docker
root@ubuntu2204:~# docker-compose -f /data/app/harbor/ restart
# Log in again
root@ubuntu2204:~# docker login 172.16.70.162
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/.
Configure a credential helper to remove this warning. See
/engine/reference/commandline/login/#credentials-store
Login Succeeded
# Where to save login account information,If you do not delete subsequent logins,No need to enter a username and password
root@ubuntu2204:~# cat /root/.docker/
{
"auths": {
"172.16.70.162": {
"auth": "YWRtaW46SGFyYm9yQDU0MzIx"
}
}
# 1.Viewing Local Mirrors
root@ubuntu2204:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
goharbor/harbor-exporter v2.11.1 cdf68efc001e 2 months ago 114MB
goharbor/redis-photon v2.11.1 acf90a312d47 2 months ago 170MB
goharbor/trivy-adapter-photon v2.11.1 24a8273e807a 2 months ago 339MB
goharbor/harbor-registryctl v2.11.1 43fca2a06374 2 months ago 168MB
goharbor/registry-photon v2.11.1 9da6663b36f2 2 months ago 90.3MB
goharbor/nginx-photon v2.11.1 193a1b77b7d4 2 months ago 159MB
goharbor/harbor-log v2.11.1 2752e033bfbb 2 months ago 169MB
goharbor/harbor-jobservice v2.11.1 a8005a88b3dc 2 months ago 165MB
goharbor/harbor-core v2.11.1 eaf65baad3f6 2 months ago 191MB
goharbor/harbor-portal v2.11.1 f58813018a49 2 months ago 167MB
goharbor/harbor-db v2.11.1 be56f8030c48 2 months ago 277MB
goharbor/prepare v2.11.1 1d00ffdb2e67 2 months ago 216MB
# 2.The local image is tagged and pushed to theHarbor
root@ubuntu2204:~# docker tag goharbor/nginx-photon:v2.11.1 172.16.70.162/202411_public/nginx-photon:v2
root@ubuntu2204:~# docker images | grep nginx
172.16.70.162/202411_public/nginx-photon v2 193a1b77b7d4 2 months ago 159MB
goharbor/nginx-photon v2.11.1 193a1b77b7d4 2 months ago 159MB
root@ubuntu2204:~# docker push 172.16.70.162/202411_public/nginx-photon:v2
The push refers to repository [172.16.70.162/202411_public/nginx-photon]
7a130cf406bb: Pushed
fa65d0b345aa: Pushed
v2: digest: sha256:b7a54e6b04ffe19096cc5a788fa3364bc2dea742c26a990ea3270bf20eaa723d size: 741
# 3.pulldockerhubmirroring,Tagged and pushed toHarbor
root@ubuntu2204:~# docker pull mysql:8.4.3
root@ubuntu2204:~# docker tag mysql:8.4.3 172.16.70.162/202411_public/mysql:8.4.3
root@ubuntu2204:~# docker images | grep mysql
172.16.70.162/202411_public/mysql 8.4.3 ed66f13824d5 4 weeks ago 592MB
mysql 8.4.3 ed66f13824d5 4 weeks ago 592MB
root@ubuntu2204:~# docker push 172.16.70.162/202411_public/mysql:8.4.3
The push refers to repository [172.16.70.162/202411_public/mysql]
488946e535dc: Pushed
c6a372379ade: Pushed
4baca2f64123: Pushed
e7f948391a9f: Pushed
3f0758c2bc58: Pushed
96bad7ffa575: Pushed
9a7be671c0ad: Pushed
4dae3171e4f9: Pushed
5cebbdcae534: Pushed
217e34a4f824: Pushed
8.4.3: digest: sha256:0b6d2de7d79984b386696b75aca8341fea4456775e2b22f806a463f2199d4624 size: 2411
- View Harob Warehouse