Docker
내가 원하는 환경의 서버를 container라는 개념으로 쉽게 생성 및 삭제할 수 있는 플랫폼.
관련 글
[Docker] Docker로 Hadoop 구성하기 #2 - Hadoop 설치 및 세팅
[Docker] Docker로 Hadoop 구성하기 #3 - Hadoop 클러스터 구성 및 실행
이번에 해볼 것은 docker 를 이용해 Hadoop cluster 구성하기입니다. Hadoop cluster라는 것이 기본적으로 다수의 컴퓨터가 존재해야 합니다. 같은 환경의 컴퓨터가 여러 대 존재한다면 가능하지만 일반적인 경우에는 다수의 컴퓨터가 존재하지 않고 혹시나 있더라도 전부 똑같은 환경 구성이 되어있는 경우는 극히 드뭅니다. 그래서 이럴 때 가장 유용하게 사용될 수 있는 것이 바로 docker 입니다.
Docker 다운로드
아래의 링크에서 MacOS docker 를 다운로드합니다.
https://hub.docker.com/editions/community/docker-ce-desktop-mac
docker 를 설치하고 튜토리얼을 진행했다면 docker dashboard에는 아래와 같이 container들이 존재합니다.
CentOS 이미지 다운로드 및 container 생성
우리는 CentOS를 사용해야 하기 때문에 터미널에서 docker 명령어로 CentOS 이미지를 다운로드합니다. CentOS 버전은 원하시는 걸로 바꿔주시면 됩니다. 저는 7버전을 이용했습니다.
$ docker run centos:7
이미지를 다운로드하면 CentOS 이미지가 추가되어있고 container 메뉴에는 자동으로 CentOS container가 추가되어있습니다.
원하는 이름으로 다시 만들고 싶거나 새로운 container를 만들고 싶다면 터미널에서 docker 명령어를 입력합니다.
$ docker run --restart always --name container_name -dt centos:7
이후에 docker 명령어를 이용하여 현재 실행 중인 docker 리스트를 확인하고 터미널로 접속하도록 합니다. 또는 docker dashboard에서 직접 실행시킬 수 있습니다.
$ docker ps
$ docker exec -it container_name /bin/bash
"docker exec" VS "docker run" VS "docker attach"
docker container를 생성 및 실행시키는 명령어는 docker exec, docker run 그리고 docker attach가 있습니다. 이 명령어들은 분명한 차이점이 있습니다.
docker exec의 경우에는 이미 실행되어 있는 container 내에서 특정 명령어를 수행시킵니다. 위에 예시에서는 docker exec 명령어를 이용해서 이미 실행되어 있는 container_name이라는 이름의 container 내부에 /bin/bash 명령어를 수행시킨 것입니다. 터미널에 접속하기 위해서 /bin/bash 명령어를 입력했지만 container 내부에서 특정 명령어를 수행하기 위해 사용합니다.
$ docker exec -it container_name /bin/bash
docker run의 경우에는 container를 새로 생성함과 동시에 실행시키고 특정 명령어를 시작 명령어로 입력할 수 있습니다. 보통 아래와 같이 사용합니다.
$ docker run -i -t --name container_name centos /bin/bash
docker attach의 경우 실행되고 있는 container에 접속하는 명령어입니다. 위에서 설명한 docker exec 명령어와 /bin/bash를 함께 입력했을 때 결과가 같습니다.
$ docker attach container_name
그 외에 이미 생성되어 있는 container를 실행시키거나 중지시키는 명령어는 docker start와 docker stop를 사용합니다.
$ docker start container_name
$ docker stop container_name
References
https://m.blog.naver.com/alice_k106/220359633558
'BigData Engineering > Docker' 카테고리의 다른 글
[Docker] Docker로 Hadoop 구성하기 #3 - Hadoop 클러스터 구성 및 실행 (8) | 2021.06.15 |
---|---|
[Docker] Docker로 Hadoop 구성하기 #2 - Hadoop 설치 및 세팅 (14) | 2021.05.31 |