docker

[docker] docker로 이미지 만들기

Jenny376 2023. 1. 9. 23:20
안녕하세요. hia의 개발 story입니다.

오늘은 도커에 대한 글을 써볼까 합니다.

이전에 맥북에서 oracle을 사용하기 위해 docker를 사용했던 적이 있습니다. 

그때는 아무것도 모르는 채로 맥북에서 사용하기 위해 열심히 따라서 구축했었습니다. 

 

아래의 글을 따라가면 맥북 환경에서 docker를 설치하는 방법을 알 수 있습니다. 

 

맥 OS에서 DB 환경 구축하기 - 1. Docker 이용해서 Oracle Database 11g 설치하기

현재 취업을 위해 국비지원 교육을 듣는 중이다. 30일 동안의 자바 수업이 끝나고 작은 프로젝트를 진행한 ...

blog.naver.com

아직도 잘은 모르지만 조금 배운 내용을 기록하기 위해 글을 씁니다. 

docker란 별도로 가상화 환경을 구축하지 않고도 가상환경을 만들어주기 위한 격리 프로세스라고 보면 됩니다.

완전히 개념을 익힌 게 아니라 오늘은 개념에 대한 글은 자세히 적지 않고 실습 위주의 내용을 올리겠습니다.

 

사실 이번에 실습을 하면서 어느 정도 개념은 잡혔기 때문에 도커를 배우고 싶다면

이 실습이 도커를 이해하는데 큰 도움이 될 거라 생각이 듭니다.

 

실습은 도커에서 우분투 이미지를 다운로드 해서

거기에 python과 vi 에디터를 설치하여 간단한 index.html 파일을 만든 후 웹 서버에 띄워주도록 하겠습니다. 

 

docker 설치 확인 

터미널에 접속하여 docker가 잘 설치되어 있는지 확인합니다. 

아래의 명령어를 실행하여 version이 확인된다면 잘 설치가 된 것입니다. 

docker --version

도커에 우분투 설치하기

이제 도커에 우분투를 설치하도록 하겠습니다.

명령어는 아주 간단합니다.

docker pull 뒤에 다운로드할 이미지:버전을 적으면 됩니다.  

최신 버전을 받고 싶다면 버전에 latest라고 적어주시면 됩니다.

docker pull ubunto:20.04

도커에 설치된 이미지 파일 정보를 볼 수 있습니다. 

docker images

터미널 환경 말고 docker에서도 아래와 같이 image가 다운로드된 걸 볼 수 있습니다. 

이미지 파일 실행하기 

이제 이미지를 실행시킬 건데 --name 뒤에 원하는 이름을 적고 그 뒤에 실행할 이미지명을 적어주면 됩니다.

docker run -it --name test-server ubuntu:20.04

이렇게 실행이 되면 터미널은 내가 실행한 우분투 환경으로 접속이 됩니다. 

 

파이썬 & vi에디터 설치하기

여기서부터는 도커 명령어가 아닌 우분투 명령어입니다.

차례대로 실행하면 파이썬과 vi에디터 설치가 완료됩니다. 

apt update
apt install python3
apt install vim

index.html 파일 만들기

이제 우분투에 /var/sample 폴더를 만들어줍니다. 

cd 명령어로 /var/sample 폴더에 들어간 후 ls 명령어로 아무것도 없는 것을 확인합니다.

vi index.html로 vi 에디터를 켜줍니다. 

mkdir /var/sample
cd /var/sample
vi index.html

에디터가 켜지면 i를 누르고 hello world를 입력합니다.

esc를 눌러 입력 모드를 꺼주고 :wq를 적어 저장하며 나와줍니다. 

다시 ls를 치면 아까와 달리 index.html 파일이 생겼습니다. 

cat 명령어를 이용해 index.html 내용을 확인해 줍니다. 

이제 여기까지 하면 우분투에 설정은 완료되었습니다.

그러면 설정된 우분투를 다시 이미지로 만들어서 가동해보도록 하겠습니다. 

 

 도커 컨테이너를 이미지로 만들기 

실행 중인 도커는 유지한 채 새로운 터미널을 열어줍니다. 

docker commit 명령어에 현재 구동 중인 컨테이너와 만들어질 이미지 이름을 차례대로 적어줍니다. 

명령어를 실행하고 docker images 명령어를 입력하면 test-server-img가 생성된 것을 볼 수 있습니다. 

docker commit test-server test-server-img

포트 번호 입력하여 다시 run 하기 

아래의 명령어를 실행하여 줍니다. 

-p 뒤에 [접속할 포트]:[기존 포트]를 입력해 줍니다. 

그 후 우분투 접속이 되면 python 웹 서버 연결하는 명령어를 통해 구동해 줍니다. 

docker run -it -p 8001:8000 --name test-server-run test-server-img
python3 -m http.server

아래와 같이 localhost:8001로 접속하면 전에 만든 index.html과 같이 hello world가 보입니다. 

또한 실행 중인 터미널에서는 아래와 같이 로그가 찍힙니다. 

 

여기까지가 docker 실습이었습니다.

사실 저도 모든 걸 이해하고 따라가지는 않았지만 이 실습으로 인해 도커가 무엇인지 개념은 조금 잡히는 듯합니다.

앞으로도 docker에 대해 공부하여 더 많은 활용을 할 수 있었으면 좋겠습니다.