Upload the image to the platform
Importing a docker save tar on screen, or docker push with a container token
Required permission: DevelopDEVELOPER · OPERATOR · ADMIN
There are two ways to put an image into the platform's built-in registry.
| Way | When | What you need |
|---|---|---|
| tar import (screen) | A partner handed over a file. The receiving PC does not need Docker | A browser, DevelopDEVELOPER · OPERATOR · ADMIN |
| docker push | The PC that built the image can reach the platform registry directly | Docker, a container token |
Either way the result is the same. The image is registered as <registry host>/<tenant>/<repository>:<tag>, and the training pod pulls the image from this address.
Architecture and size
- It must be
linux/amd64. An image that contains only other architectures is rejected at import. If you build on a computer with an ARM CPU, usedocker build --platform linux/amd64 …. - With CUDA wheels, 6–8 GB is common. The import limit is 32 GiB by default.
Handing over a tar (partner side)
docker build -t example/mnist-trainer:v1 .
docker save example/mnist-trainer:v1 | gzip > mnist-trainer-v1.tar.gz # always include the tag
sha256sum mnist-trainer-v1.tar.gz > mnist-trainer-v1.tar.gz.sha256
| Item | Details |
|---|---|
| Format | Output of docker save. Depending on the Docker version it comes out as docker-archive or OCI layout; both are accepted |
| Compression | .tar · .tar.gz · .tgz all work. gzip is recommended |
| Number of images | One image per archive. Putting several in, as in docker save a b, is rejected |
| Name | The name recorded in the archive is used as is. If you save by image ID without a tag, the name is empty and the importing side has to choose one |
| Checksum | Supplying a .sha256 along with it lets you detect corruption in transit |
The example MNIST image (CPU-only torch) was about 520 MB compressed.
Importing a tar (platform side)
- Open Container Registry (컨테이너 레지스트리) in the left menu and press Import image (이미지 반입) at the top right.
- ① Choose the
.tar.gzyou received. ② Fill in repository and tag only to rename. If left empty, the archive's name (example/mnist-trainer:v1) is used. Do not type the tenant prefix (demo/); the server adds it. ③ Press Import (반입).Image import — ① a .tar/.tar.gz from docker save ② fill only to rename ③ Import - The file is uploaded in chunks. When the transfer finishes, the server goes on to assemble → inspect → register layers. Closing the window during the transfer cuts off the upload, but after the transfer finishes you can close the window and the server-side work continues. When it is done, the Import image (이미지 반입) card shows complete (완료) and the final address.
Import history — after assembly, inspection and layer registration the row turns Complete and shows the registry address
If an import fails, the card shows the reason as is (architecture mismatch, not a docker save output, and so on). The warning in the screen above (skipped an attestation manifest …) means an attestation manifest that recent Docker versions save alongside was skipped; it has no effect on using the image.
Uploading with docker push
- Issue a token at Account settings (계정 설정) → Container tokens (컨테이너 토큰). The token is shown only once right after issuing, together with a
docker logincommand with the host and user name filled in. Only DEVELOPER or higher can push.Right after issuing a container token — ① the secret is shown only now ② a ready docker login command - Log in, tag the image, and push it.
echo "<issued token>" | docker login mlops.example.com -u demo --password-stdin
docker tag example/mnist-trainer:v1 mlops.example.com/demo/example/mnist-trainer:v1
docker push mlops.example.com/demo/example/mnist-trainer:v1
- Any user name works. The token is the password, and the tenant is fixed in the token.
- Put the tenant code (lower case) in the first segment of the path. That gives the same shape as images imported on screen, so it is easy to spot in the list and the variant picker.
- If the registry is open only over HTTP, the Docker daemon needs an insecure-registry setting — see Use the container registry directly.