การติดตั้ง Docker เพื่อเตรียมทำ Lab

Tanya Sattaya-aphitan
4 min readAug 27, 2017

--

ความต้องการเบื้องต้น:

  1. ระบบปฎิบัตรการ : Windows 7 /10
  2. Internet Access
  3. พื้นฐานการใช้งาน Linux เบื้องต้น

1. ติดตั้ง Docker บน Windows

Downlod และ ติดตั้ง : https://store.docker.com/editions/community/docker-ce-desktop-windows

( กรณีต้องการศึกษา Docker สามารถทำความเข้าใจเบื้องต้นได้ที่นี่ )

เมื่อติดตั้งเสร็จให้เปิด Command Prompt เพื่อทดสอบ Docker โดยพิมพ์

docker info

ถ้าไม่ขึ้น error แสดงว่า Docker ใช้งานได้ …. ยินดีด้วย คุณได้ไปต่อ ^_^

2. Run Linux Container จาก Docker

เนื่องจาก Hadoop จะทำงานบนระบบปฎิบัติการ Linux ดังนั้นเราจึงต้อง run Linux บน Docker โดยในที่นี้เราจะใช้ Docker image ของ ซึ่งเป็น Ubuntu ที่เป็น version ที่ติดตั้ง ssh เอาไว้แล้วเพื่อสะดวกในการ ssh เข้าไปทำงาน

docker pull rastasheep/ubuntu-sshd

รอจนเสร็จแล้วทำการตรวจสอบว่ามี images ที่เครื่องแล้วหรือยัง

docker images

ทำการ start ubuntu container

docker run -d -p 2222:22 --name ubuntu rastasheep/ubuntu-sshd

คำสั่งนี้จะทำกา run container ของระบบปฏิบัติการ Ubuntu ชื่อว่า “ubuntu” โดยมีการ map port 22 SSH จาก container มาที่เครื่องเราที่ port 2222 (-p 2222:22)

ตรวจสอบการทำงานของ ubuntu container

docker ps

ถ้า STATUS ขึ้นว่า “Up … minutes” , และ NAMES = ubuntu แสดงว่าเครื่องเรา จำลอง Ubuntu Linux เรียบร้อยแล้วพร้อมที่จะทำในขั้นตอนการลง Hadoop ต่อไป

ใครผ่านถึงขั้นตอนนี้ข้ามไปข้อ 3 ได้เลย ครับ

— — — สำหรับคนที่ติด error เท่านั้น!!!! — — —

ลอง stop container

docker stop ubuntu

ลองลบ docker process

docker rm -f ubuntu

แล้วเริ่ม start ubuntu container (docker run -d …) ใหม่ครับ

3. วิธีการดู IP Address ของ Docke rContainer

ก่อนที่เราจะเชื่อมต่อเข้าไปใช้ Container Docker เราต้องทราบ IP address ซึ่งในที่นี้จะมี 2 IP คือ

  • Container IP คือ IP ที่ใช้ภายใน Docker Container
  • Host IP คือ IP ของระบบปฎิบัติการที่ run Docker ดังแสดงได้ดังรูปที่ 1
รูปที่ 1. Host IP และ Container IP

ซึ่งวิธีการดู IP ของทั้งสองนั้นสามารถดูได้ดังนี้

  • Container IPหาได้จากคำสั่ง
docker inspect ubuntu

เลื่อนหาข้อความ “IPAddress” ในที่นี้ Container IP คือ 172.17.0.2

  • Host IP หาได้จากคำสั่ง
ipconfig

ซึ่ง Host IP ในที่นี้คือ 10.0.75.1

กรณีหา Host IP ไม่พบให้ลองใช้คำสั่ง

docker-machine ip

เมื่อเราทราบทั้งสอง IP แล้วก็ “จด” ไว้ซึ่งต่อไปจะถูกนำไปใช้ในบทความต่อไปครับ

Host IP = 10.0.75.1

Container IP = 172.17.0.2

4. ทดสอบเชื่อมต่อใช้งาน Ubuntu container ด้วย Putty (ผ่าน SSH)

ต่อไปเราจะใช้ putty ทำการเชื่อมต่อเข้าไปใช้ระบบปฎิบัติการ ubuntu ที่ run อยู่ภายใต้ Docker container ดังแสดงดังรูปที่ 2

รูปที่ 2 การสร้าง SSH เพื่อเข้าไปใช้งาน Ubuntu ที่ run อยู่ภายใต้ Docker Container

ทำการ download putty ที่นี่ และติดตั้งให้เรียบร้อย

เปิด Putty ใส่

Host IP = 10.0.75.1

Port = 2222

โดยจริงๆ แล้ว Container IP คือ 172.17.0.2 และ Port SSH คือ 22 แต่เนื่องจากเราอยู่ที่ Host ที่ใช้ IP 10.0.75.1 และ ได้ map port 22 จาก container มายัง host ที่ port 2222 (ระบุ parameter -p 2222:22 ในคำสั่งตอน docker run … ในข้อ 2)

กด Open

แล้วกด Yes แล้ว login ด้วย

user: root

password: root

ถ้า login สำเร็จ เราจะได้ shell ของ ubuntu ที่ run บน Docker Container ให้ลองพิมพ์

cat /etc/*release

ซึ่งจะเห็นว่าตอนนี้เราเข้าไปใช้งาน Ubuntu version 14.04 ที่ run อยู่ใน Docker Container

5. สร้าง User สำหรับการใช้งาน

เข้า Putty ด้วย user: root ตามที่ได้อธิบายไปใน “ตอนที่ 1” ทำการสร้าง user สำหรับใช้งานซึ่งเราจะไม่ใช้ user root เนื่องจากสิทธิ์สูงมาก

สร้าง ubuntu user : “tan” , ใส่ password เป็น “tan”

useradd tan
passwd tan

สร้าง home directory และใส่ user tan เข้าสู่ group sudo

mkhomedir_helper tan
usermod -aG sudo tan

จากนั้นให้ทำการปิด putty และ re-login ด้วย user: tan

user : tan

password : tan

แก้ไขให้เรียก Bash shell หลังจาก Login เพื่อให้ง่ายในการกด keyboard เรียกคำสั่งต่างๆ

vi .profile

เพิ่มคำสั่ง bash ต่อท้าย file .profile

bash

Note : จบขั้นตอนนี้ผมได้ทำการ Save Docker image ไว้ที่ →

drtan/ubuntu-lab:setup

6. ติดตั้ง Java 8

sudo apt-get updatesudo apt-get install software-properties-commonsudo add-apt-repository ppa:webupd8team/java -y sudo apt-get updatesudo apt-get install oracle-java8-installer

เลือก Yes 2 ครั้ง จากนั้นลองทดสอบเรียก Java โดย

java -version

Note : จบขั้นตอนนี้ผมได้ทำการ Save Docker image ไว้ที่ →

drtan/ubuntu-lab:java8

สรุป Command

#Run Docker
docker run -d -p 2222:22 --name ubuntu rastasheep/ubuntu-sshd
#Stop Docker
docker stop ubuntu
#kill docker process
docker rm ubuntu

สรุป

มาถึงจุดนี้เราก็ได้เตรียม Docker เพื่อพร้อมที่จะใช้งานเพื่อทำ Lab ต่อไป

--

--

Tanya Sattaya-aphitan
Tanya Sattaya-aphitan

No responses yet