반응형

Containerd 에서 인증서 에러 발생시 인증서가 있는 경우와 없는 경우 설정하는 방법이다.

 

참고로 containerd 를 설정했다고 ctr 명령어 까지 같이 적용되는건 아니다. crictl 만 적용된다.

ctr 의  경우 인증서가 있으면 --tlscacert, --tlscrt, --tlskey 3개옵션을 적용하여 사용하면 되며

인증서가 없을 경우 --skip-verify 옵션을 사용하면된다.

 

1. containerd 설정파일을 수정한다.

$ vi /etc/containerd/config.toml

[plugins."io.containerd.grpc.v1.cri".registry]
   config_path = "/etc/containerd/certs.d"

 

2. certs.d 폴더를 생성한다.

$ cd /etc/containerd/

$ mkdir certs.d

 

3. 내부에 인증서 연결할 서버 폴더생성

$ cd certs.d

$ mkdir registry.wky.kr

$ cd registry.wky.kr

$ pwd
/etc/containerd/certs.d/registry.wky.kr

 

 

4. hosts.toml 파일 생성 

인증서가 있는 경우.

$ vi hosts.toml

server = "https://registry.wky.kr"

[host."https://registry.wky.kr"]
  capabilities = ["pull", "resolve"]
  # pemfile 이 있는 경로 및 파일 입력
  ca = pemfile.pem
  # crt, key, pem 파일이 있는 경로 및 파일 입력
  client = [[crtfile.crt, keyfile.key], [pemfile.pem]]

 

인증서가 없는 경우

$ vi hosts.toml

server = "https://registry.wky.kr"

[host."https://registry.wky.kr"]
  capabilities = ["pull", "resolve"]
  skip_verify = true

 

 

 

참고 : https://github.com/containerd/containerd/blob/main/docs/hosts.md

반응형
반응형

 

Container 실행없이 이미지 내에 있는 파일들을 확인하는 방법이다.

'ctr image mount imagename:tag 폴더' 명렁어를 통해 확인할 수 있다.

 

먼저 이미지가 서버 내에 있어야함.

$ crictl images
IMAGE                                    TAG                 IMAGE ID            SIZE
docker.io/library/busybox                latest              63cd0d5fb10d7       1.86MB

$ mkdir busybox

$ ctr -n=k8s.io image mount docker.io/library/busybox:latest ./busybox/
sha256:66ccab9b46d8f9daffd6e24c69ab2d6c5a5b44e9d0e39991985a910a2775755e
./busybox/

$ ls busybox/
bin  dev  etc  home  lib  lib64  root  tmp  usr  var

 

반응형
반응형

 

ctr image import image.tar 시 아무런 응답이 없고 실제로 업로드가 안될 때

1. 해당 image.tar 파일을 압축해제하고  manifest.json 파일을 오픈다

2. 오픈시 RepoTags 부분을 확인하면 null값으로 들어가있으며, 이를 수정하면 된다.

 

"RepoTags" : null, -> "RepoTags": ["이미지 URL"]

 

이후 ctr image import 명령어를 수행하면 image가 import 되는 것을 확인할 수 있다.

반응형
반응형

 

1. Docker 아키텍쳐 pull

docker pull --platform linux/amd64 nginx:latest

 

2. Docker image 저장

docker save -o a.tar imagenams

 

3. Docker image 업로드

docker load -i a.tar

 

4. Docker image 태그 변경

docker image tag imageid a:1.0

 

5. Docker 아키텍처 빌드

docker build --platform linux/amd64 -t test:1.0 .

 

6. ctr export

# namespace k8s.io export
ctr -n=k8s.io images export nginx.tar nginxt:latest

# default namespace
ctr images export nginx.tar nginxt:latest

 

7. ctr import

# namespace k8s.io import
ctr -n=k8s.io images import nginx.tar

# default namespace
ctr images import nginx.tar

 

8. ctr image tag 변경

ctr -n=k8s.io image tag 기존이미지태그 변경할이미지태그

 

9. ctr push id/password

## https
ctr -n=k8s.io image push imagename -u "id:password"

## http일 경우
ctr -n=k8s.io image push imagename -u "id:password" --plain-http

 

반응형

+ Recent posts