Migrating images from a Personal Edition instance to an Enterprise Edition instance requires changing the image domain name, which can be costly. To simplify this migration, Enterprise Edition instances offer a compatibility feature that allows you to access them using the Personal Edition domain name without any changes.
Prerequisites
-
An Enterprise Edition instance is created. For more information, see Create an Enterprise Edition instance.
-
Data is migrated from the Personal Edition instance to the Enterprise Edition instance. For more information, see Import images from a Personal Edition instance to an Enterprise Edition instance.
This feature is available only to whitelisted users.
Limits
-
You can enable this compatibility feature for only one Enterprise Edition instance per region.
-
If you use a Personal Edition domain name to pull images from other users' Personal Edition instances, you can pull only their public images.
-
If a namespace in your Enterprise Edition instance has the same name as one in a Personal Edition instance, you cannot pull images from that Personal Edition namespace. Therefore, do not use strings specific to Container Service for Kubernetes (ACK), such as
acs, as namespace names in your Enterprise Edition instance. This helps prevent access failures to official ACK container images. -
If you use the internet, you must manually configure domain name resolution to point to the endpoint of the Enterprise Edition instance.
-
To use a RAM user to log on and pull images, you must also configure access credentials for the Enterprise Edition instance and grant the RAM user the required permissions. For more information, see RAM authorization.
Background information
Personal Edition and Enterprise Edition instances support the following types of domain names:
-
Domain names for a Personal Edition instance (using the China (Hangzhou) region as an example)
NoteStarting from September 9, 2024, the domain names used to access new Personal Edition instances are adjusted. For more information, see Limits on new Personal Edition instances.
-
Default internet domain name for the China site: registry.cn-hangzhou.aliyuncs.com
-
Default private network domain name for the China site: registry-vpc.cn-hangzhou.aliyuncs.com
-
Default internet domain name for the international site: registry-intl.cn-hangzhou.aliyuncs.com
-
Default private network domain name for the international site: registry-intl-vpc.cn-hangzhou.aliyuncs.com
-
-
Domain names for an Enterprise Edition instance (using the China (Hangzhou) region as an example)
-
Default internet domain name: <Name of the Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com
-
Default private network domain name: <Name of the Enterprise Edition instance>-registry-vpc.cn-hangzhou.cr.aliyuncs.com
-
Custom domain name: You can use a domain name that you have registered.
-
How it works
The compatibility feature works by resolving the Personal Edition domain name to the internet or VPC endpoint of your Enterprise Edition instance within your private environment.
-
On the cloud: The system automatically uses Alibaba Cloud DNS PrivateZone to add the VPC domain name of the Personal Edition instance and resolve it to the VPC endpoint of the Enterprise Edition instance. If you want to access the Enterprise Edition instance over the internet by using the Personal Edition domain name, you must manually configure Alibaba Cloud DNS PrivateZone to resolve the Personal Edition domain name to the internet endpoint of the Enterprise Edition instance. We recommend using VPC to access your instance.
-
On-premises, you must configure domain name resolution to point to the Enterprise Edition instance. When you push or pull an image, the system distributes traffic based on the namespace specified in the address. If the namespace exists in your Enterprise Edition instance, the traffic is routed to the Enterprise Edition instance. Otherwise, the traffic is routed to the Personal Edition instance.
Scenarios
|
Scenario |
Personal Edition compatibility |
Enterprise Edition domain |
|
Recommended |
Not recommended |
|
Your distribution scenarios are complex, making domain name resolution costly. For example, you may need to provide images to third parties. |
Not recommended |
Recommended |
|
You need to use private images from other users' Personal Edition instances in the same region. |
Not recommended |
Recommended |
Step 1: Enable Personal Edition domain compatibility
Log on to the Container Registry console.
In the top navigation bar, select a region.
On the Instances page, click the Enterprise Edition instance that you want to manage.
-
In the left-side navigation pane, choose .
-
On the Domain page, turn on the Support Personal Edition Instance Domains switch.
ImportantTo use the compatibility feature, you must submit a ticket to add your Enterprise Edition instance to the whitelist.
-
In the Configure Resolution dialog box, select Confirm to Enable the feature of supporting personal edition instance domains and click Confirm.
After the compatibility feature is enabled, two Personal Edition domain names are added to the Domain page. For example, if the instance is in the China (Hangzhou) region, the internet domain name registry.cn-hangzhou.aliyuncs.com and private network domain name registry-vpc.cn-hangzhou.aliyuncs.com are added.
ImportantIt takes a few seconds to enable the compatibility feature. During this period, you cannot manage namespaces or configure network access control.
After the compatibility feature is enabled, images that are pushed by using a Personal Edition domain name are stored in the Enterprise Edition instance instead of the Personal Edition instance.
Step 2: Configure domain name resolution
Before using a Personal Edition domain name to access an Enterprise Edition instance, you must configure domain name resolution. The procedure depends on the domain name type.
-
If you use a private network, Alibaba Cloud DNS PrivateZone automatically resolves the domain name for your bound VPC. No further action is required.
-
If you use the internet, you must manually add the CIDR block of your on-premises machine to an internet whitelist and configure domain name resolution. This section uses an internet connection as an example.
-
Add an internet whitelist and get the internet domain name.
Log on to the Container Registry console.
In the top navigation bar, select a region.
In the left-side navigation pane, click Instances.
-
On the Enterprise Edition instance page, choose .
-
On the Access Control page, click the Internet tab.
On the Internet tab, note the Domain address .
-
Turn on the Enable Access over Internet switch and click Add Internet Whitelist.
-
In the Add Internet Whitelist dialog box, enter the address range of the local host and a description, then click Confirm.
-
Run the following command on your on-premises machine to get the IP address of the domain name.
ping <Domain name>Get the IP address of the domain name from the command output.
-
Add the following entry to the hosts file on your on-premises machine and save the file.
<IP address of the domain name> <Internet domain name of the Personal Edition instance>
Step 3: Access the instance via Personal Edition domain
After you enable the compatibility feature, you can use the Personal Edition domain name to log on to the Enterprise Edition instance and push images to its image repositories.
-
On the Domain page, obtain the internet domain name. In this example, registry.cn-hangzhou.aliyuncs.com is used.
-
Run the following command on a Docker client to log on to the Enterprise Edition instance.
docker login registry.cn-hangzhou.aliyuncs.comEnter your username and password as prompted. The
Login Succeededmessage indicates a successful logon. -
Push an image.
-
Run the following command to tag the image.
docker tag <Image ID> registry.cn-hangzhou.aliyuncs.com/<Namespace>/<Image repository name>:<Image tag> -
Run the following command to push the image to the Enterprise Edition instance.
docker push registry.cn-hangzhou.aliyuncs.com/<Namespace>/<Image repository name>:<Image tag>On the Repositories page of the Enterprise Edition instance, click the name of the target image repository and select Image Version. On the Image Version page, you can see the pushed image. This indicates that you have successfully accessed the Enterprise Edition instance by using a Personal Edition domain name.
-
Related topics
To use an Enterprise Edition instance to pull images directly from Docker Hub, see Use an Enterprise Edition instance to push and pull images.