개요
Docker credential 이 내부적으로 어떻게 이뤄지는지 안다.
docker 클라이언트 로그인을 한다.
$ docker login -u <username>
# password 수동 입력
Login Succeed!
로그인이 완료되면
~/.docker/config.json 파일을 열어보자
Default
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "<base64-token>"
}
}
}
credsStore
Docker Desktop 설치 및 로그인을 하는 경우 설정된다.
{
"auths": {
"https://index.docker.io/v1/": {
},
"credsStore": "wincred"
}
}
credsStore 는 왜 사용하는가?
default 의 base64 토큰은 Decoding 시 username:password
평문이 그대로 노출된다.
따라서 Docker 는 OS 별로 외부에 토큰 노출 없이 사용자에게 노출되지 않는 토큰 저장소를 사용할 수 있도록 제공한다.
jib 사용시 팁
보통 jib 를 로컬에 구성한다면 다음과 같은 형태로 작성하게 될 것이다.
jib {
from {
image = "eclipse-temurin:17-jre-alpine"
}
to {
image = "m-falcon/kafka-streams-stateless"
tags = setOf(project.version.toString())
}
container{
jvmFlags = listOf("-Dspring.profiles.active=dev")
mainClass = "stateless.StatelessAppKt"
// Similar to Docker EXPOSE
ports = listOf("8080")
environment = mapOf("TZ" to "Asia/Seoul")
}
}
jib - docker login 시 username 에 email 대신 username 을 그대로 써야한다!
email 을 사용하는 경우
401 Unauthorized {"detail": "incorredt username or password"} 에러가 발생한다.
Conclusion
Docker desktop login 으로 credsStore
를 사용하고, email 대신 username 으로 로그인하라!
'기타 > Docker' 카테고리의 다른 글
[Docker] manifest digest vs index digest (0) | 2024.10.21 |
---|---|
[Docker] Multi Stage (0) | 2024.09.20 |
[Docker] Docker network for communication among containers (0) | 2023.04.23 |
[Docker] Host to container network (0) | 2023.04.19 |
[Docker] volume with CLI (0) | 2022.05.19 |