본문 바로가기

IT

docker image 다운로드, container 생성, 실행 각각 진행하기

반응형

앞에서 docker run 명령어를 이용하여 image 다운로드, container 생성, container 구동, container 의 console 연결까지 한번에 처리되는 것을 확인해 보았는데, 대부분은 해당 절차를 분리하여 수행하게 됩니다.


자, 그럼 시작해 봅시다.


1. image 다운로드

 아래 명령어를 이용하여 docker image 를 다운로드 합니다.


$ sudo docker pull <repository:tag>


다운로드를 위해서 image 의 repository(저장소) 와 tag(태그) 로 다운로드가 가능합니다.

앞전에 ubuntu 의 경우는 repository 가 ubuntu tag 는 16.04 를 입력하여 다운로드했었습니다.


$ sudo docker pull ubuntu:16.04


다운로드가 완료되면, sudo docker images 명령어를 이용하여 다운로드된 image 목록을 확인할 수 있습니다.


dante2k@DANTE2K-GRAM-UBUNTU:~$ sudo docker pull ubuntu:16.04
16.04: Pulling from library/ubuntu
7b722c1070cd: Pull complete
5fbf74db61f1: Pull complete
ed41cb72e5c9: Pull complete
7ea47a67709e: Pull complete
Digest: sha256:e4a134999bea4abb4a27bc437e6118fdddfb172e1b9d683129b74d254af51675
Status: Downloaded newer image for ubuntu:16.04
dante2k@DANTE2K-GRAM-UBUNTU:~$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              16.04               7e87e2b3bf7a        4 days ago          117MB
dante2k@DANTE2K-GRAM-UBUNTU:~$


2. image 로 container 생성

 아래 명령어를 이용하여 내려받은 docker image 를 기반으로 container 를 생성할 수 있습니다.


$ sudo docker create -i -t --name ubuntu1604 ubuntu:16.04


위 명령어를 좀 살펴보면, create 라는 명령어를 이용하여 생성할 수 있다는 것이 보이고,

container name 을 ubuntu1604 라는 문자열로 지정하고 있네요. (이름을 지정하지 않으면 docker 가 자동으로 이름을 랜덤하게 생성하여 적용합니다. 생성된 후 이름을 변경하고 싶은 경우 rename 명령어를 이용하여 변경할 수도 있습니다.)

그리고 마지막에 container 를 생성할 때 사용할 이미지를 지정하고 있습니다.

추가로 -i -t 는 terminal 연결을 위해서 부가적으로 추가하였습니다.


위 명령어를 입력하면 아래와 같이 container 가 생성됩니다.


dante2k@DANTE2K-GRAM-UBUNTU:~$ sudo docker create -i -t --name ubuntu1604 ubuntu:16.04
420165def7ccf7bc90ae16827894ade84f450dc07906cdaad26f1664ec0b43a5
dante2k@DANTE2K-GRAM-UBUNTU:~$ sudo docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
420165def7cc        ubuntu:16.04        "/bin/bash"         8 seconds ago       Created                                 ubuntu1604
dante2k@DANTE2K-GRAM-UBUNTU:~$


3. 생성된 container start(구동) 하기

 아래 명령어를 이용하여 생성된 docker container 를 구동할 수 있습니다.


$ sudo docker container start ubuntu1604


명령어를 보면 container 의 start 라는 명령어를 사용하여 구동하며, 뒤에 container name 를 적어서 특정 container 를 구동하라고 알려주고 있습니다.


위 명령어가 정상적으로 수행되면 아래와 같은 출력을 얻을 수 있습니다.


dante2k@DANTE2K-GRAM-UBUNTU:~$ sudo docker container start ubuntu1604
ubuntu1604
dante2k@DANTE2K-GRAM-UBUNTU:~$ sudo docker container ls -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
420165def7cc        ubuntu:16.04        "/bin/bash"         About a minute ago   Up 3 seconds                            ubuntu1604
dante2k@DANTE2K-GRAM-UBUNTU:~$


STATUS 가 'Created' 에서 'Up 구동시간' 으로 변경된 것을 확인할 ㅏ수 있습니다.


4. terminal 연결해보기

 아래 명령어를 이용하여 container console 에 연결할 수 있습니다.


$ sudo docker attach ubuntu1604


연결에 해당하는 attach 명령어와 container name 을 적어서 접속을 시도합니다.

정상적으로 명령어가 처리되면 아래와 같이 콘솔에 연결됩니다.


dante2k@DANTE2K-GRAM-UBUNTU:~$ sudo docker attach ubuntu1604
root@420165def7cc:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@420165def7cc:/#


여기까지, image 다운로드, container 생성, 실행, terminal 연결까지 각각 분리하여 확인해 보았습니다.

반응형