도커 이용하기

YoungJoon Suh·2022년 4월 29일
0

이미지: docker/whalesay
docker/whalesay는 레지스트리 계정, 레포지토리 이름, 태그 세 가지 정보로 구성되어 있다.
이미지 구분: Registry_Account/Repository_Name : Tag

  1. 레지스트리 (Registry)
    도커 이미지를 관리하는 공간입니다.
    특별히 다른 것을 지정하지 않는다면, 도커 허브(Docker Hub)를 기본 레지스트리로 설정합니다.
    레지스트리는 Docker Hub, Private Docker Hub, 회사 내부용 레지스트리 등으로 나뉠 수 있습니다.

  2. 레포지토리 (Repository)
    레지스트리 내에 도커 이미지가 저장되는 공간입니다.
    이미지 이름이 사용되기도 합니다.
    GitHub의 레포지토리와 유사하게 생각하면 됩니다.

  3. 태그 (Tag)
    같은 이미지라고 할지라도 버전 별로 안의 내용이 조금은 다를 수 있습니다.
    해당 이미지를 설명하는 버전 정보를 주로 입력합니다.
    특별히 다른 것을 지정하지 않는다면 latest 태그를 붙인 이미지를 가져옵니다.

Docker Hub : docker/whalesay
사용할 이미지를 확인했으니, 사용하는 방법을 알아야 합니다.
Docker Hub는 Docker Image를 찾거나, Docker Image의 사용방법을 확인할 때 사용할 수 있습니다.

{image} pull : 레지스트리에서 이미지 혹은 레포지토리를 가져옵니다. (pull)
docker image ls: 이미지 리스트를 출력합니다.
docker container run: 받아온 이미지를 실행합니다.

{container} run: 컨테이너를 실행합니다.
[OPTIONS]: --name : 컨테이너의 이름을 할당합니다.
[COMMAND]:
command는 초기 컨테이너 실행 시 수행되는 명령어입니다.
cowsay 컨테이너 실행 시 cowsay 명령어를 호출합니다. node를 호출하듯 이용합니다.
[ARG..]
boo : COMMAND인 cowsay에 넘겨질 파라미터입니다.

{container} ps: 컨테이너의 리스트를 출력합니다.
-a: Default 로는 실행되는 컨테이너지만 종료되는 컨테이너를 포함하여 모든 컨테이너를 출력합니다.

docker container rm 컨테이너이름: 컨테이너이름이라는 이름을 가진 컨테이너를 삭제합니다.

{container} rm : 컨테이너를 지칭해서 삭제합니다. 컨테이너를 명시할 때는 ps 명령을 통해 확인할 수 있는 NAMES 혹은 CONTAINER ID를 사용합니다.

docker container run --name 컨테이너_이름 --rm docker/whalesay cowsay boo
하나의 이미지를 받아와 컨테이너로 실행하고, 컨테이너와 관련된 리소스를 삭제하는 작업까지 한번에 수행하는 명령어

{container} run : 컨테이너를 실행합니다. 이미지가 없다면 이미지를 받아온 뒤(pull) 실행합니다.
--rm : 컨테이너를 일회성으로 실행합니다. 컨테이너가 중지되거나 종료될 때, 컨테이너와 관련된 리소스를 모두 제거합니다.

image rm: 지정된 도커 이미지를 삭제합니다. (docker rmi)

도커는 같은 기능을 수행하더라도, 명령을 여러 형태로 내릴 수 있습니다.

-it: -i, -t를 동시에 사용한 옵션입니다. 사용자와 컨테이너 간에 인터렉션(interaction)이 필요하다면 이 옵션을 사용합니다. 출력되는 화면을 사용자가 지속적으로 보기 위해서 사용하였다. 예를 들어 Python 명령이 필요하거나 추가로 다른 입력을 받는다면, 이 옵션을 지정한 뒤 사용합니다.

게임 서버, 웹 서버와 같이 여러분이 사용할 도구가 도커 이미지에 모두 구성되어 있지 않은 경우도 있다.
1. 웹 서버는 도커 컨테이너로 실행
2. 웹 서버를 구성하는 파일은 직접 만들거나 가져온 파일 구성

로컬에 있는 파일과 도커 이미지를 연결하는 방법은 크게 CP(Copy)를 이용하는 방법과 Docker Volume기능을 이용하는 방법으로 나뉩니다.
CP(Copy): 호스트와 컨테이너 사이에 파일을 복사 (Copy)
Volume : 호스트와 컨테이너 사이에 공간을 마운트 (Mount)

마운트는 저장 공간을 다른 장치에서 접근할 수 있도록 경로를 허용해서, 마치 하나의 저장 공간을 이용하는 것처럼 보이게 하는 작업을 말합니다.

httpd(http daemon)는 /usr/local/apache2/htdocs/ 경로에 웹 서버와 관련된 파일들이 저장되어 있다면, 해당 파일을 기반으로 웹 서버가 실행되도록 합니다.

Docker 이미지 만들기
앞서 만들어 본 Docker Container를 이미지 파일로 변환합니다. 이미지로 만들어 놓을 때의 장점은 다음과 같습니다.
이전에 작업했던 내용을 다시 한 번 수행하지 않아도 됨.
배포 및 관리에 유용

  1. 구동한 Docker Container를 이미지로 만드는 방법
    docker container commit 명령을 이용

각 컨테이너는 호스트 OS의 커널(Kernel, 시스템 콜과 같이 OS의 핵심 기능을 구현한 프로그램)을 공유하고 있다.

profile
저는 서영준 입니다.

0개의 댓글