상세 컨텐츠

본문 제목

Docker로 우분투 실행하고 Geth 설치하기

Blockchain/Ethereum

by Yongari 2023. 1. 30. 20:13

본문

 

순서

 

  • 1. Docker로 우분투 실행하기
  • 2. 실행한 우분투에서 geth(ethereum 1.0 / pow) 설치하기 

 

 

 

Docker란? 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. 쉽게 말하면 OS와 격리된 가상화된 경량 컨테이너입니다.

 

Docker를 사용하는 이유 : 

 

도커허브 이미지와 docker-compose.yml의 설정으로 프로그램을 편안하게 설치할 수 있습니다.

하나의 서버(로컬호스트)에 포트만 변경해서 동일한 프로그램을 실행할 수 있습니다.

 

Docker 설치

 

다음 링크를 통해 Docker 설치

 

Docker 엔진 설치 : 링크 

 

Install Docker Engine on Ubuntu

 

docs.docker.com

Docker Compose 설치 : 링크

 

Overview

 

docs.docker.com

 

 

 

Container 설정

 

1. "docker search ubuntu"를 통해 이미지를 검색합니다.

docker search ubuntu
NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ubuntu                           Ubuntu is a Debian-based Linux operating sys…   15514     [OK]       
websphere-liberty                WebSphere Liberty multi-architecture images …   291       [OK]       
ubuntu-upstart                   DEPRECATED, as is Upstart (find other proces…   112       [OK]       
neurodebian                      NeuroDebian provides neuroscience research s…   98        [OK]       
ubuntu/nginx                     Nginx, a high-performance reverse proxy & we…   75                   
open-liberty                     Open Liberty multi-architecture images based…   56        [OK]       
ubuntu/apache2                   Apache, a secure & extensible open-source HT…   53                   
ubuntu-debootstrap               DEPRECATED; use "ubuntu" instead                50        [OK]       
ubuntu/squid                     Squid is a caching proxy for the Web. Long-t…   50                   
ubuntu/bind9                     BIND 9 is a very flexible, full-featured DNS…   45                   
ubuntu/mysql                     MySQL open source fast, stable, multi-thread…   41                   
ubuntu/prometheus                Prometheus is a systems and service monitori…   35                   
ubuntu/postgres                  PostgreSQL is an open source object-relation…   23                   
ubuntu/kafka                     Apache Kafka, a distributed event streaming …   21                   
ubuntu/redis                     Redis, an open source key-value store. Long-…   16                   
ubuntu/prometheus-alertmanager   Alertmanager handles client alerts from Prom…   8                    
ubuntu/dotnet-deps               Chiselled Ubuntu for self-contained .NET & A…   6                    
ubuntu/grafana                   Grafana, a feature rich metrics dashboard & …   6                    
ubuntu/memcached                 Memcached, in-memory keyvalue store for smal…   5                    
ubuntu/zookeeper                 ZooKeeper maintains configuration informatio…   5                    
ubuntu/dotnet-runtime            Chiselled Ubuntu runtime image for .NET apps…   5                    
ubuntu/telegraf                  Telegraf collects, processes, aggregates & w…   4                    
ubuntu/cortex                    Cortex provides storage for Prometheus. Long…   3                    
ubuntu/dotnet-aspnet             Chiselled Ubuntu runtime image for ASP.NET a…   3                    
ubuntu/cassandra                 Cassandra, an open source NoSQL distributed …   2

 

 

2.  "docker pull ubuntu"를 통해 이미지를 받아옵니다.
(저는 이미 있기때문에 다음과 같은 결과물이 나옵니다. 다른분들은 다른 로그가 출력될 것입니다.)

 

~$ docker pull ubuntu

Using default tag: latest
latest: Pulling from library/ubuntu
Digest: sha256:27cb6e6ccef575a4698b66f5de06c7ecd61589132d5a91d098f7f3f9285415a9
Status: Image is up to date for ubuntu:latest
docker.io/library/ubuntu:latest

 

 

3.  "docker create -it --name test_ubuntu ubuntu" 명령어를 실행합니다. 

ubuntu 이미지를 가지고 이름이 test_ubuntu인 컨테이너를 생성합니다. 

docker create -it --name test_ubuntu ubuntu
88f74c1cc608752f7109aae95a33997467e73a79ab65f7547ec92811d985ab70

 

 

4.  test_ubuntu Docker 컨테이너를 시작합니다.
test_ubuntu라는 이름의 컨테이너를 시작합니다. 

docker start test_ubuntu 
test_ubuntu

 

5. 실행중인 컨테이너 목록을 확인함 
다음과 같이 실행중인 Docker 컨테이너 목록을 볼 수 있습니다. 

docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED              STATUS          PORTS     NAMES
88f74c1cc608   ubuntu    "bash"    About a minute ago   Up 46 seconds             test_ubuntu
19ce643be0fd   ubuntu    "bash"    4 hours ago          Up 4 hours                con_ubuntu2
45afb3975ffe   ubuntu    "bash"    3 days ago           Up 4 hours                con_ubuntu

 

이외에 실행중이지 않은 Docker 컨테이너는 다음 명령을 통해 확인할 수 있습니다.

docker ps -a
CONTAINER ID   IMAGE                    COMMAND                  CREATED         STATUS                     PORTS                                         NAMES
88f74c1cc608   ubuntu                   "bash"                   2 minutes ago   Up About a minute                                                        test_ubuntu
5f5b31c06210   c259f103002e             "/bin/sh -c 'apt-get…"   2 hours ago     Exited (100) 2 hours ago                                                 hopeful_hellman
19ce643be0fd   ubuntu                   "bash"                   4 hours ago     Up 4 hours                                                               con_ubuntu2
5382dd86b081   cf15fcac8b1e             "/bin/sh -c yarn"        40 hours ago    Exited (1) 40 hours ago                                                  youthful_golick
45afb3975ffe   ubuntu                   "bash"                   3 days ago      Up 4 hours                                                               con_ubuntu
a6b1b21c91cc   node_test/node-web-app   "docker-entrypoint.s…"   3 weeks ago     Exited (255) 3 weeks ago   0.0.0.0:49160->8080/tcp, :::49160->8080/tcp   blissful_rubin
4f4036be26c6   sebcontents/client       "/docker-entrypoint.…"   3 weeks ago     Exited (0) 3 hours ago                                                   client
c3be6bc84e22   mysql:latest             "docker-entrypoint.s…"   3 weeks ago     Exited (0) 3 hours ago                                                   database
57348ee227d9   sebcontents/server       "docker-entrypoint.s…"   3 weeks ago     Exited (1) 3 hours ago                                                   server
9d5136869f38   my_pacman:2.0            "httpd-foreground"       3 weeks ago     Exited (0) 3 weeks ago                                                   my_web3
5529919f512f   my_pacman1.0:latest      "httpd-foreground"       3 weeks ago     Exited (0) 3 weeks ago                                                   myweb2
b7c9dc2f0fbc   httpd                    "httpd-foreground"       3 weeks ago     Exited (0) 3 weeks ago                                                   packman
7ac290e3a24e   hello-world              "/hello"                 3 weeks ago     Exited (0) 3 weeks ago                                                   sharp_gates
5e92c924f68d   hello-world              "/hello"                 3 weeks ago     Exited (0) 3 weeks ago                                                   strange_dubinsky

 

6. 실행중인 Docker 컨테이너를 현재 터미널에서 연결하기.

그럼 다음과 같은 명령어로 연결하면 root@"88f74c1cc608"라고 나오는데요
자세히 보시면 이 "88f74c1cc608" 문자열 값은 Docker  Container ID 값입니다.

docker attach test_ubuntu
root@88f74c1cc608:/# 
root@88f74c1cc608:/# 
root@88f74c1cc608:/# pwd
/

 

 

7. 컨테이너 셋팅 후 다음의 패키지들을 설치하시면 됩니다.

 

  1. repository 설치
  2. vim 설치 (리눅스 editor)
  3. geth 설치
  4. git 설치 
  5. go-ethereum 설치
  6. geth  버전을 커맨드로 확인 
apt update -y && apt install -y software-properties-common
add-apt-repository ppa:ethereum/ethereum
apt-get install vim -y
apt update -y && apt install geth
apt-get install git -y
git clone https://github.com/ethereum/go-ethereum
apt-get install -y build-essential golang
geth version

 

geth version 결과값

geth version
Geth
Version: 1.10.26-stable
Git Commit: e5eb32acee19cc9fca6a03b10283b7484246b15a
Architecture: amd64
Go Version: go1.18.5
Operating System: linux
GOPATH=
GOROOT=go

관련글 더보기