언젠가 독커 (docker)를 사용해 보고 싶었습니다.

독커란 무엇일까요?

저도 아주 자세히는 모르겠습니다만, 리눅스의 커널 영역을 제외한 여러 배포판의 사용자 영역 이미지로 시작하는, 반 가상화(?) 라고 이해하고 있습니다.

독커 사용에 매우 편리한 독커 허브 (https://hub.docker.com)에 있는 여러 official imageDockerfile을 보면, FROM이 있고, 각 이미지들은 여러 배포판을 선택하고 있습니다.

Arch Linux독커 허브Official Image가 없기 떄문에, 저만의 Arch Linux 이미지를 만들어 보았습니다.

Minibrary Docker Hub Arch Linux Image 링크

0. 독커 설치하기

독커는 aptyum 등의 패키지 매니저로도 설치할 수 있지만, 여기서는 독커에서 제공하는 ppa를 추가하여 설치 하겠습니다.

먼저, curl이 설치되어 있는지 확인합니다.

which curl

curl이 없다면 설치합니다.

sudo apt update && sudo apt install curl -y

curl이 설치 되었으면, 아래 명령어로 docker를 설치합니다.

curl -fsSL https://get.docker.com/ | sh

명령어를 실행하면 sudo권한을 위한 비밀번호를 묻습니다.

비밀번호를 입력해 줍니다.

1. 이미지 가져오기

아래 명령어로 이미지를 가져옵니다. (아래 명령어에 포함된 이미지는 제가 만든 Arch Linux 입니다.)

sudo docker pull minibrary/archlinux

가져온 이미지 목록을 봅니다.

sudo docker images

2. 이미지 실행하기

가져온 이미지를 bash가 실행되도록 컨테이너로 실행합니다.

sudo docker run -i -t --name arch minibrary/archlinux /bin/bash

-iinteractive모드로 컨테이너에 접속(attach)하지 않았어도 실행되도록 합니다. -tallocate pseudo-TTY로, terminal 을 만들어 줍니다. --name arch는 해당 이미지로 만드는 컨테이너에 자기가 원하는 이름(여기서는 arch)를 붙여줍니다.

실행 하면 바로 컨테이너가 실행 되면서, 해당 이미지의 /bin/bash가 실행 됩니다.

3. Repository 업데이트

현재 상태의 Arch Linux는 거의 아무것도 들어있지 않습니다.

일단 Repository를 업데이트 해 줍시다.

pacman -Syu

4. 종료 및 재실행

현재 상태의 컨테이너는 종료를 하거나 나가기를 할 수 있습니다.

exit를 입력 하면 컨테이너에서 빠져 나오며, 컨테이너를 멈춥니다.

exit

아래 명령어로 현재 실행 중인 컨테이너를 확인해 봅시다.

sudo docker ps

아무것도 나오지 않습니다.

다시 아래 명령어로 모든 컨테이너의 목록을 확인해 봅시다.

sudo docker ps -a

방금 만든 arch라는 이름의 컨테이너가 표시 되고, statusexited입니다.

이제, 다시 실행 하기 위해서 아래의 명령어를 입력 합니다.

한 번 만들어진 컨테이너는 본인이 붙인 이름으로 간단하게 전과 같은 환경으로 실행할 수 있습니다.

아래 명령어로 컨테이너 실행 및 프로세스를 확인합니다.

sudo docker start arch && sudo docker ps

이 상태에서 다시 컨테이너에 접속 (컨테이너의 command를 실행) 합니다.

sudo docker attach arch

명령어 실행후 아무 키나 눌러 보면, 다시 Arch Linuxbash cli로 접속한 것을 알 수 있습니다.

이렇게 생성한 컨테이너는, 실제 리눅스 환경처럼 사용하고, 필요가 없어지면 컨테이너이미지를 삭제하는 것으로, 실제 Host OS지저분(?) 하지 않게 사용할 수 있습니다.

이상으로 간단하게 docker를 이용하여 Arch Linux를 실행 하여 보았습니다.