공부하게 된 계기작년 초부터 좋다고 얘기가 나오길래 해보고 싶었다. 그런데 작년엔 리눅스 관련 지식이 부족했고, 올해는 맥북을 사서 크게 필요성을 못 느꼈다. 이 글에서 도커에 대한 모든 걸 정리할 생각은 없고, 그냥 간단하게 정리하고 공부하면서 겪었던 난관에 대해서 정리할 것이다. 도커를 사용하는 이유?웹 애플리케이션마다 개발 환경, 배포 환경이 다르기 때문이다. 도커란?도커는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 가상 머신 VS 컨테이너
VM은 말 그대로 호스트 OS에 공간을 할당해서 한 OS를 통째로 올리는 방식이다. 도커 이미지, 컨테이너도커는 이미지와 컨테이너로 나뉜다. 레이어위와 같이 동작하는 이유는 레이어 방식을 사용하기 때문이다. 도커 이미지에 새로운 걸 설치하면 그 위에 쌓인 레이어에만 적용하기 때문에 아래 레이어는 영향받지 않는다. 도커 설치설치 관련해서는 생략하겠다. 직접 찾아서 설치하자. 아니면 최하단의 링크를 참조해도 된다. 도커 명령어
도커 이미지를 받아온다. 도커 이미지를 저장하고 있는 도커 허브가 있는데, 거기서 제공하고 있는 도커 이미지를 받아온다.
인자로 주어진 이미지로 컨테이너를 실행한다. 여러 가지 옵션들이 있는데, 아래에서 실습할 때 언급할 것이다.
위 코드는 ubuntu:20.04 이미지로 /bin/bash 명령어를 실행한다는 뜻이다. docker run 옵션
원래 --link 옵션으로 컨테이너와 컨테이너를 묶을 수 있는데, deprecated 상태가 되었다.
이 명령어는 현재 실행중인 컨테이너를 보는 명령어이다. 아래는 출력물 예시이다. 내가 임의로 만든 nodejs 개발용 ubuntu 서버 이미지가 실행되고 있는 모습이다.
COMMAND 부분이
docker stop으로 현재 실행중인 컨테이너를 종료할 수 있다. 컨테이너 아이디는 중복이 없다면 처음 몇 글자만 적어도 무방하다.
컨테이너를 삭제하는 명령어다. 종료된 컨테이너만 삭제 가능하다.
도커 이미지 목록을 볼 수 있다.
내가 만든 이미지와 ubuntu:20.04 이미지가 있다. docker pull로 받아온 이미지를 여기서 볼 수 있다.
도커 이미지를 삭제할 수 있다. 도커 이미지는 아무리 도커라도 어느 정도 나가니 안 쓰는 이미지는 삭제해주면 좋다. 나머지 명령어는 필요할 때마다 찾아서 쓰자. 이 정도면 기초적인 거는 모두 가능하다. 컨테이너 명령어 실행 (exec)
보통 위 명령어를 통해 실행한다. 이미 실행 중인 컨테이너를 실행하는 것이다. 이 명령어는 간단하게 넘어가고, 이제 내가 진행했던 실습을 적어보겠다. 실습나는 Ubuntu 개발 환경을 만들려고 했다. 그 곳에 NodeJS와 PostgreSQL을 설치해서 NodeJS 개발을 할 예정이었다. Dcokerfile
이것저것 막 뜨면서 진행이 된다. 콘솔창을 보면 Dockerfile에 입력한 명령어들이 실행되면서 텍스트가 쭉 내려가는 것을 확인할 수 있다.
이런 식으로 자신만의 커스텀 이미지를 생성할 수 있다.
여기까지 잘 읽었다면 위 명령어가 뭘 뜻하는 지 대충 이해가 갈 것이다.
현재 node 서버는 컨테이너에서 3000번으로 열려있다. 위와 같이 잘 연결되었다. 일단 PostgreSQL 서버도 잘 동작하고, 구축 자체는 성공적으로 마쳤다. Reference
다음 글은 로컬 환경에서 NodeJS 개발 환경을 구축해볼 것이다. 이번에 못했던 것들을 진행할건데.. |