Set Name & Tag

namkun·2022년 5월 7일
0

Docker & Kubernetes

목록 보기
10/16

여태까지 생성된 이미지들을 보면 따로 다운받아서 사용한 node를 제외한 것들은 REPOSITORY와 TAG가 비어있는 것을 볼 수 있다.

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
<none>       <none>    c586f6393f99   4 days ago    920MB
<none>       <none>    a79f50098489   6 days ago    1GB
node         latest    738d733448be   2 weeks ago   995MB

또한, 컨테이너 역시

$ docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                        PORTS     NAMES
2576f840776b   a79f50098489   "docker-entrypoint.s…"   57 minutes ago   Exited (137) 29 minutes ago             jolly_shamir
e67c4282072a   c586f6393f99   "python rng.py"          4 days ago       Exited (0) 4 days ago                   zen_bartik

NAMES를 보면 내가 생성한게 아닌 자동생성된 이름들이 붙어있는 것을 볼 수 있다.

이렇게 하면 내가 뭘 생성한건지 나중에 까먹기 쉽고, 찾아보기도 쉽지 않다.

그렇기에 우리는 컨테이너와 이미지에 태그와 이름을 붙여서 사용하는게 더 편한데 이제 이에 대해 알아보자.

Container name

우선 컨테이너에 대한 이름이다.

$ docker run --help
--name string                    Assign a name to the container

컨테이너를 실행하는 run 명령어에 대해서 옵션을 찾아보면, 위와 같이 --name이라는 옵션이 있음을 알 수 있다.

그렇기에 우리는 해당 옵션을 통해서 컨테이너에 이름을 붙일 수 있다.

$ docker run -p 3000:80 --name nodeServerApp a79f50098489

이렇게 이름을 nodeServerApp이라고 하고 실행시키면...

$ docker ps   
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                  NAMES
24a0ae12e5b7   a79f50098489   "docker-entrypoint.s…"   23 seconds ago   Up 22 seconds   0.0.0.0:3000->80/tcp   nodeServerApp

이렇게, 우리가 원하는 이름을 물고 컨테이너가 올라간 것을 확인할 수 있다.

Image Tag

이미지들을 다시 한번 살펴보자.

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
<none>       <none>    c586f6393f99   4 days ago    920MB
<none>       <none>    a79f50098489   6 days ago    1GB
node         latest    738d733448be   2 weeks ago   995MB

REPOSITORY와 TAG는 뭘까?

REPOSITORY는 이미지의 그룹의 이름에 대해 말하는 것이고, 이는 NAME 이라고도 한다.

TAG는 이미지 그룹내에서 특정 버전등의 특정 이미지를 지정하는 것이다.

궁금하다면 도커허브에서 여러 버전의 태그를 확인해볼 수 있다.

자 사족이 길었으니, 이제 직접 이미지를 빌드할 때, REPOSITORY와 TAG를 설정하는 법을 알아보자.

 docker build -t [image NAME(REPOSITORY)]:[TAG] [Docker file dir]

위와 같이 사용하면 된다.

자, 그럼 이전에 빌드했던 이미지를 기반으로 이름과 태그를 달고 빌드해보자.

(repository(name)는 무조건 소문자여야한다. )

$ docker build -t node_server_app:latest .

다 빌드가 되고 이미지를 확인해보면..

$ docker images
REPOSITORY        TAG       IMAGE ID       CREATED         SIZE
node_server_app   latest    3eb16122f8bb   6 seconds ago   1GB

우리가 작성한대로 빌드된 것을 볼 수 있다.

자 그럼 새로빌드한 이미지로 컨테이너를 띄워보자.

$ docker run -p 3000:80 -d --rm --name nodeServerApp node_server_app:latest         
9942ac3d9e5a887a1a9c565fbb52934dd920d00f457abb3fce9bb7800b04186a
$ docker ps   
CONTAINER ID   IMAGE                    COMMAND                  CREATED         STATUS         PORTS                  NAMES
9942ac3d9e5a   node_server_app:latest   "docker-entrypoint.s…"   2 seconds ago   Up 2 seconds   0.0.0.0:3000->80/tcp   nodeServerApp

우리가 만든 이미지를 잘 물고 올라간 것을 IMAGE를 통해서 알 수 있다.

profile
개발하는 중국학과 사람

0개의 댓글