검색결과 리스트
글
!markdown
# Docker (도커)
나의 팀에서 도입하여 개발도구로 쓰이고 있는 `Docker`와
현재 사회적 이슈가 되고 있는 `암호화폐` 그리고 `블록체인`...
"Docker로 코인을 채굴을 할 수 있을까?" '`Docker`' '`Coin`' '`Mining`' 이 세 단어로 열심히 구글링해 보았더니
`모네로`와 `제트캐시`의 채굴 이미지를 `ServeTheHome`이라는 곳에서 공개하고 있었다.
도커가 정말 훌륭하고 좋은 기술인데, 재밌게 배워보고 싶다면 `코인채굴`은 좋은 동기부여가 될수 있을 것 같다.
### 1. minergate.com (마이너게이트)
우선 마이너게이트([https://minergate.com/](https://minergate.com/))에 가입한다. 자신의 Email로 가입해 두면 된다.
사실 굳이 Docker를 이용하지 않아도, 이 사이트에서 채굴전용 프로그램을 다운받아서 채굴을 할 수 있다.
컴퓨터 뿐만아니라 Android AppStore에서 minergate를 검색해보면 스마트폰용 채굴프로그램도 있다. 정말 된다. 하하하
하지만 우린 Docker를 사용해보자.
### 2. Docker 설치
생략
### 3. XMR (Monero/모네로)
이제 모네로를 채굴해보자.
```bash
docker run -itd --name xmr-test -e username=youremail@address.com servethehome/monero_cpu_minergate
```
이 도커명령은 servethehome([https://hub.docker.com/r/servethehome/monero_cpu_minergate/](https://hub.docker.com/r/servethehome/monero_cpu_minergate/))에서 공개한 `모네로 채굴 Docker 이미지`이다. PC의 Docker Registry에 해당 이미지가 없으면 자동으로 [hub.docker.com](https://hub.docker.com)에서 이미지를 받아와서 Container를 생성하여 실행하게 된다.
`-e username=youremail@address.com` 이 부분은 마이너게이트에 가입한 Email을 적어야 자신의 계정으로 채굴량이 전송된다. `-e`는 환경변수를 설정하는 옵션이다. 생성될 Container의 환경변수 username의 값을 입력해주는 것이 된다.
`--name xmr-test`는 생성하는 Container의 이름을 xmr-test라고 지정하는 것이다. Container를 생성할때 `--name` 옵션을 설정하지 않아도 자동으로 이름이 붙지만 필히 이름을 지어서 관리하도록 하자.
위의 도커명령을 입력함과 동시에 이미지 안에 있는 `/usr/local/bin/moneroCPU.sh`를 실행시킨다. 이 쉘스크립트안에는 CPU 코어에 맞게 thread를 생성해서 모든 CPU자원으로 채굴하도록 되어 있다. 때문에 바로 CPU의 점유율이 100%를 차지하게 되는데, 코어 수에 따라서는 100% 200% ...를 초과된 수치도 볼 수 있다. PC에 부하가 많이 가겠다는 생각이 든다면 Docker가 제한적으로 자원을 사용하도록 할 수 있다.
```bash
docker run -itd --name xmr-test -e username=youremail@address.com --cpus=".9" servethehome/monero_cpu_minergate
```
`--cpus=".9"` 를 추가로 설정하면 해당 Docker Container는 CPU 점유율 90%를 초과하지 못하게 된다.
### 4. XMR채굴 (thread 조절 가능)
위의 채굴기는 thread 수를 쉽게 조절할 수 없다는 단점이 있다.
위의 이미지 (servethehome/monero_cpu_minergate)안에 있는 쉘파일(`/usr/local/bin/moneroCPU.sh`)을 조금 수정하여 threads 환경변수를 이용하여 thread 수를 조절할 수 있도록 했다.
```bash
docker run -itd --name xmr-test2 -e username=youremail@address.com -e threads=1 souljungkim/xmr
```
PC에 부담을 조금만 주려면 `-e threads=1` 이렇게 낮은 수치를 설정하면 되고, 아니면 수치를 더 입력해본다.
```bash
docker run -itd --name xmr-test2 -e username=youremail@address.com souljungkim/xmr
```
또는 입력하지 않는다면 `servethehome/monero_cpu_minergate`이미지 처럼 최대 thread로 자동설정되도록 만들었다.
### 5. Container 확인 및 제어
#### 1) 잘 채굴되고 있나?
`xmr-test` Container의 Foreground에서 실행중인 `채굴기가 로그를 잘 찍고 있나` 확인해 보자.
```bash
docker logs -f xmr-test
```
`[Ctrl]` + `[C]`로 빠져나올 수 있다.
채굴량을 보려면 마이너게이트([https://minergate.com/](https://minergate.com/))로 가서 [`Dashboard`]를 확인하면 된다. 또는 스마트폰 어플로도 확인 가능하다.
#### 2) Docker Container의 CPU점유율과 메모리 사용량 등.. 확인
`docker stats`로 docker를 Container들의 상태를 확인하고
```bash
docker stats
```
리눅스라면 `top`으로 자신의 PC의 상태도 확인하고 (윈도우즈라면 `작업관리자`)
```bash
top
```
리눅스에서는 `htop`을 이용하면 Core별 CPU점유율을 깔끔하게 확인 가능하다.
```bash
htop
```
#### 3) 채굴을 그만두고 싶다면?
```bash
docker ps -a
```
사용중인 Container들을 열람한 후
```bash
docker stop xmr-test
```
`stop`하고
```bash
docker rm xmr-test
```
`rm`으로 이력을 지우자.
#### 4) 다시 채굴을 하려면?
다시 위의 `docker run ...`으로 실행하면 된다.
### 6. GPU를 이용한 본격적인 채굴
위의 채굴 방식은 GPU자원을 사용하지 않지만, 원한다면 방법이 있는 모양이다.
[https://forums.servethehome.com/index.php?threads/monero-gpu-mining-in-docker-with-nvidia-docker.12955/](https://forums.servethehome.com/index.php?threads/monero-gpu-mining-in-docker-with-nvidia-docker.12955/)
이 사이트를 참고해보면 GPU를 활용하는 방법이 나와있다.
```
nvidia-docker run -d -e username=example@example.com servethehome/monero_gpu_nv_minergate
```
이런식으로 `NVIDA-DOCKER`라는 것을 이용하면 GPU자원으로 DOCKER를 생성할 수 있다고 한다.
### 참고
- servethehome/monero_cpu_minergate: [https://hub.docker.com/r/servethehome/monero_cpu_minergate/](https://hub.docker.com/r/servethehome/monero_cpu_minergate/)
- Mine Monero with Docker Mine Cryptocurrencies with Containers: [https://autoize.com/mine-monero-docker/](https://autoize.com/mine-monero-docker/)
- Monero Mining Benchmarks – CPU Mining With Select Dual Intel Xeon E5 Systems: [https://www.servethehome.com/monero-mining-benchmarks-select-dual-intel-xeon-e5-systems/](https://www.servethehome.com/monero-mining-benchmarks-select-dual-intel-xeon-e5-systems/)
- Monero GPU mining in Docker with nvidia-docker: [https://forums.servethehome.com/index.php?threads/monero-gpu-mining-in-docker-with-nvidia-docker.12955/](https://forums.servethehome.com/index.php?threads/monero-gpu-mining-in-docker-with-nvidia-docker.12955/)
'TOOL > Docker' 카테고리의 다른 글
[Docker for Windows] GitLab & Admin 관리자 계정 설정법 (1) | 2019.12.20 |
---|---|
[Docker for Windows] PostgreSQL (0) | 2019.12.20 |
[Docker] 제트캐시(ZEC) 채굴하기 (2) | 2017.12.29 |
[Docker] 모든 이미지 지우기 (0) | 2017.12.06 |
[Docker] Docker building fails: returned a non-zero code: 1 (0) | 2017.12.04 |