학원컴퓨터는 윈도우7, 내 노트북은 macOS. 운영체제가 다르다 보니 맥북에서 작업하던걸 학원컴퓨터에서 실행하고 작업하려니 생기는 문제점들이 많았다.
처음에는 깃헙에 올리고 pull해서 쓰기만 하면 되겠지 싶었는데, 뭐가 뭔지 모를 에러가 나서 이럴 바에 도커를 시작해보자고 생각했다.
docker for window가 있긴 하지만 윈도우 7에서는 사용할 수 없기 때문에, docker toolbox를 설치하였다. 설치하면 나름 귀여운 고래가 나온다.
시험 삼아 ubuntu 이미지를 pull 해보자. 4개의 이미지를 다운로드 받아 온다.
docker pull ubuntu
docker images -a
하면 latest 버전의 ubuntu 이미지가 하나 존재한다.docker run
으로 이미지 쉘에 접근하기. 우분투에 접속하는데에 성공한다.docker ps
명령어를 치면 현재 실행중인 컨테이너를 보여준다.exit
을 하고 docker ps
를 확인하면 컨테이너가 죽은 것을 알 수 있다. 그러나 docker restart
명령으로 되살릴 수 있으며, docker attach
로 되살아난 컨테이너에 쉘을 다시 시행시킬 수 있다.--rm
플래그를 주면, 컨테이너가 exit될 때 되살릴 수 없도록 삭제하라는 명령과 같다.컨테이너에 git을 설치해보자.
apt-get install -y git
그랬더니 unable to locate package git이라는 에러가 떴다. 이는 우분투 패키지 매니저인 apt-get을 업데이트 하지 않았기 때문. apt-get update
명령 후 다시 깃 설치를 시도하면 잘 된다.
docker diff
명령을 사용하면, 부모 이미지와 부모로부터 파생된 컨테이너의 파일 시스템 간 변경사항을 확인할 수 있다. 밑의 화면에서 첫번째 명령은 git을 설치하기 전, 두번째 명령은 컨테이너에 git을 설치한 후이다. 뭐가 엄청나게 생긴 것을 볼 수 있다.docker commit [컨테이너명] ubuntu:git
한 뒤, docker images -a
를 통해 확인하면, git이라는 TAG가 붙은 새로운 이미지가 생성된 것을 볼 수 있다.도커파일은 직접 생성할 수도 있고, git에 올라와 있는 dockerfile을 clone해서 가져와도 된다. 일단 clone해서 가져온 경우, dockerfile이 존재하는 디렉토리로 이동해서
docker build -t [지정할 태그명] .
을 치면 된다. .
은 빌드 대상 디렉토리를 가리킨다. docker images -a 를 통해 확인하면 이미지가 새로 생성된 것을 확인할 수 있다.
이미지 생성 뒤에는
docker run -d -p [외부포트:내부포트] [이미지태그명]
으로 컨테이너를 생성하고 외부포트 주소를 쳐서 들어가 확인해보면 된다!