Pemasangan Docker di Raspbian Jessie

Daftar Isi

Apa Itu Docker ?

Docker adalah sebuah project open source yang ditujukan untuk developer atau sysadmin untuk membangun, mengemas dan menjalankan aplikasi dimana pun di dalam sebuah container.

Pengaturan GPU Raspberry Pi

Sebelum melakukan pemasangan Docker, kita atur memori GPU terlebih dahulu:

$ sudo raspi-config

Pilih 9 Advanced Options > A3 Memory Split saat muncul pertanyaan How much memory should the GPU have? ubah nilai dari 64 ke 16 pilih <OK> dan <Finish>, jalankan ulang Raspberry Anda.

Anda juga dapat melakukan cara berikut:

$ sudo nano /boot/config.txt

Ubah nilai gpu_mem menjadi gpu_mem=16, jalankan ulang Raspberry Anda.

Pemasangan Docker

Selanjutnya kita pasang Docker,

$ curl -sSL get.docker.com | sh
+ sudo -E sh -c mkdir -p /etc/systemd/system/docker.service.d
+ sudo -E sh -c echo '[Service]\nExecStart=\nExecStart=/usr/bin/dockerd --storage-driver overlay -H fd://' > /etc/systemd/system/docker.service.d/overlay.conf
+ sudo -E sh -c sleep 3; apt-get update
...

Jalankan service docker:

$ sudo systemctl enable docker
$ sudo systemctl start docker

Tambahkan user Anda ke dalam group docker sehingga tidak perlu menggunakan sudo saat menjalankan docker:

$ sudo usermod -aG docker useranda

Untuk memastikan docker telah berjalan, jalankan perintah berikut:

$ docker version
Client:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:31:15 2016
 OS/Arch:      linux/arm

Server:
 Version:      1.12.1
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   23cf638
 Built:        Thu Aug 18 05:31:15 2016
 OS/Arch:      linux/arm
$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 1.12.1
Storage Driver: overlay
 Backing Filesystem: extfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null overlay host bridge
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options:
Kernel Version: 4.4.11-v7+
Operating System: Raspbian GNU/Linux 8 (jessie)
OSType: linux
Architecture: armv7l
CPUs: 4
Total Memory: 973.1 MiB
Name: collab
ID: 6OKE:4S5L:MCLQ:Y2W4:MPJR:K3O2:ZY3D:OYYA:V6GP:H2LT:FVDH:DYCJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
WARNING: No kernel memory limit support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
WARNING: No cpuset support
Insecure Registries:
 127.0.0.0/8

Selamat, docker sudah berjalan di mesin raspi Anda.

Memasang docker-compose dan docker-machine

Untuk memasang docker-compose dan docker-machine kita memerlukan repositori Hypriot, jalankan perintah berikut:

$ curl -s https://packagecloud.io/install/repositories/Hypriot/Schatzkiste/script.deb.sh | sudo bash
Detected operating system as raspbian/jessie.
Checking for curl...
Detected curl...
Running apt-get update... done.
Installing apt-transport-https... done.
Installing /etc/apt/sources.list.d/Hypriot_Schatzkiste.list...done.
Importing packagecloud gpg key... done.
Running apt-get update... done.

The repository is setup! You can now install packages.

Selanjutnya pasang paket docker-compose dan docker-machine:

$ sudo apt-get install -y git docker-compose docker-machine

Periksa paket yang sudah dipasang:

$ docker-compose -v
docker-compose version 1.8.0, build 94f7016
$ docker-machine -v
docker-machine version 0.8.0, build b85aac1

Selesai, pada artikel selanjutnya kita akan lanjutkan dengan membuat image dan push ke Docker Hub, silahkan mendaftar terlebih dahulu.

Mengatasi Galat apt-get/aptitude “E: Failed to fetch - Size mismatch”

Terkadang saat memasang aplikasi kita menemukan pesan galat yang beraneka ragam, salah satunya seperti ini:

$ sudo aptitude install tree
The following NEW packages will be installed:
  tree 
0 packages upgraded, 1 newly installed, 0 to remove and 63 not upgraded.
Need to get 47,9 kB of archives. After unpacking 137 kB will be used.
Get: 1 http://kambing.ui.ac.id/debian/ jessie/main tree i386 1.7.0-3 [47,9 kB]
Fetched 449 B in 0s (4.333 B/s)
E: Failed to fetch http://kambing.ui.ac.id/debian/pool/main/t/tree/tree_1.7.0-3_i386.deb: Size mismatch

Hal ini terjadi karena beberapa hal, seperti koneksi yang buruk, pembatalan pemasangan secara tiba-tiba dll. Untuk mengatasi hal ini, Anda cukup menghapus paket yang gagal terpasang pada direktori arsip apt:

$ sudo rm /var/cache/apt/archives/partial/tree_1.7.0-3_i386.deb.FAILED

Silahkan mencoba kembali:

$ sudo aptitude install tree

Pada kasus yang saya alami, berhubung menggunakan apt-cacher-ng sebagai proxy apt agar perangkat lainnya dapat memasang aplikasi melalui proxy apt yang telah saya buat, maka saya perlu menghapus paket yang gagal pada arsip apt-cacher-ng:

$ sudo rm /var/cache/apt-cacher-ng/debrep/pool/main/t/tree/tree_1.7.0-3*
Catatan: Dilain kesempatan saya akan menulis tentang apt-cacher-ng ini.

Just a Note

This is my note about contribution for FOSS in July:

This part has been fully translated:

Modifikasi tema Jekyll HPSTR

Sebelum menambahkan class notes pada css di tema Jekyll HPSTR yang saya gunakan, saya sebelumnya menggunakan sintak markdown blockquotes untuk menampilkan keterangan ataupun catatan, setelah saya ngulik sedikit dokumentasi GitHub, akhirnya saya menambahkan berkas baru untuk pada direktori _sass/ dan menamakan berkas tersebut dengan _alert.scss.

isinya seperti berikut:

Setelah berkas dibuat, maka kita perlu menyunting berkas assets/css/main.scss untuk memanggil berkas yang telah dibuat sebelumnya dengan menambahkan @import "alert"; pada akhir baris.

$ echo "@import "alert";" >> assets/css/main.scss

Hasilnya akan seperti ini:

$ cat assets/css/main.scss
---
sitemap: false
---

/*
 *
 *  HPSTR
 *
 *  Designer: Michael Rose
 *  Twitter: http://twitter.com/mmistakes
 *
*/

// Partials
@import "variables";
@import "mixins";
@import "reset";
@import "vendor/font-awesome/font-awesome";
@import "vendor/magnific-popup/magnific-popup";
@import "site";
@import "typography";
@import "syntax";
@import "coderay";
@import "gist";
@import "grid";
@import "elements";
@import "alert";
@import "animations";
@import "dl-menu";
@import "page";

Mari kita lihat hasil dari penambahan css yang sudah dibuat:

<div class="alert alert-note"><strong>Catatan:</strong>
<ul>
<li>Item 1.</li>
<li>Item 2.</li>
<li>Item 3.</li>
<li>Item 4.</li>
</ul>
</div>

Output:

Catatan:
  • Item 1.
  • Item 2.
  • Item 3.
  • Item 4.

Selesai, semoga bisa lebih bersemangat berbagi pengetahuan.

OpenWrt+Tor firmware untuk GL.iNet 6416 dan GL.iNet AR150

Upgrade GL.iNet firmware dengan OpenWrt-Tor.

Berhubung semalam dengan ditemani oleh Mahyuddin Ramli saya melakukan upgrade firmware GL.iNet 6416A, maka saya tuliskan disini agar pembaca bisa meng-upgradenya juga.

Namun perlu di tegaskan lebih dulu…

Hati-hati:

Kerusakan perangkat yang disebabkan karena mengikuti langkah-langkah ini bukanlah tanggung jawab saya selaku penulis.

Daftar Isi

Persiapan.

Unduh firmware OpenWrt+Tor.

$ wget http://www.gl-inet.com/firmware/6416/tor/openwrt-6416-tor-1.3.bin

Bila Anda menggunakan GL.iNet versi AR150:

$ wget http://www.gl-inet.com/firmware/ar150/tor/openwrt-ar150-tor-1.3.bin
Catatan:

Untuk versi sebelumnya silahkan menuju ke tautan: Tor 6416 dan Tor AR150

Konfigurasi awal.

Silahkan lihat video berikut:

Setelah upgrade firmware selesai, Anda bisa mengakses jaringan Tor melalui SSID tor dengan password goodlife atau melalui kabel LAN, sedangkan SSID OpenWrt dengan password goodlife untuk mengakses jaringan tanpa Tor sekaligus mengkonfigurasi GL.iNet.

Menjadikan GL.iNet sebagai Repeater.

Berhubung saya menggunakan GL.iNet sebagai repeater untuk terhubung ke jaringan @wifi.id maka:

  • Ubah INTERNET CONFIGURATION dari PROTOCOL DHCP ke WiFi melalui Domino Web Panel.
Langkah 1 Langkah 2 Langkah 3
Repeater-Mode.

Anda bisa mengganti password serta SSID tor dan OpenWrt dengan mengakses SSID OpenWrt terlebih dahulu.

Langkah 4
Ubah SSID dan Password.
  • Masuk ke LUCI Web Panel pilih menu Network > Interfaces dan ubah network interface LAN, TOR dan TOR1 dengan memilih Edit, pada DHCP Server pilih tab Advenced Settings, isikan kolom DHCP-Options dengan alamat DNS @wifi.id, contoh: untuk interface LAN saya isikan 6,10.232.0.4,118.98.44.10,192.168.8.1,8.8.8.8,8.8.4.4 saya tambahkan juga Google DNS, untuk pilihan DNS terakhir terserah Anda. Kemudian Save & Apply.
Catatan:

Pada beberapa kasus, halaman login pada @wifi.id tidak dapat ditampilkan, silahkan menambahkan alamat ip 1.1.1.1 setelah alamat ip DNS @wifi.id.

Langkah 5
Setting DNS.
  • Masih di LUCI Web Panel pilih menu Network > Firewall > Custom Rules dan ubah pada:
enable_transparent_tor() {
  iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 9053
  iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040 
  iptables -t nat -A PREROUTING -i eth1 -p udp --dport 53 -j REDIRECT --to-ports 9053
  iptables -t nat -A PREROUTING -i eth1 -p tcp --syn -j REDIRECT --to-ports 9040
}
enable_transparent_tor

menjadi

enable_transparent_tor() {
  iptables -t nat -A PREROUTING -i wlan0-1 -p udp --dport 53 -j REDIRECT --to-ports 9053
  iptables -t nat -A PREROUTING -i wlan0-1 -p tcp --syn -j REDIRECT --to-ports 9040 
  iptables -t nat -A PREROUTING -i eth1 -p udp --dport 53 -j REDIRECT --to-ports 9053
  iptables -t nat -A PREROUTING -i eth1 -p tcp --syn -j REDIRECT --to-ports 9040
}
enable_transparent_tor
Langkah 6
Setting Firewall.

jangan lupa lakukan Submit.

  • Akses GL.iNet melalui ssh dan masukkan password root Anda.
ssh root@192.168.8.1
  • Lihat interface untuk SSID tor.

Karena saya memfungsikan GL.iNet sebagai repeater maka interface wlan0 akan bertambah, lihat ip address yang digunakan pada jaringan tor:

 # ifconfig
  • Sunting berkas /etc/init/tor.
 # vim /etc/init.d/tor

ubah

 start() {
        while [ -z "$(ifconfig wlan0)" -a -z "$(ifconfig eth1)" ]; do
                sleep 5
        done

menjadi

 start() {
        while [ -z "$(ifconfig wlan0-1)" -a -z "$(ifconfig eth1)" ]; do
                sleep 5
        done
  • Silahkan jalankan ulang service firewall:
# /etc/init.d/firewall restart

Bila sampai tahap ini Anda belum bisa mengakses jaringan internet, hidupkan ulang GL.inet:

# reboot
Catatan:

Tor memerlukan akses ke internet untuk terhubung ke jaringannya, ini memerlukan waktu agar koneksi Tor stabil, pastikan terlebih dulu GL.iNet Anda telah sukses terhubung ke internet dengan menghubungkan perangkat ke SSID OpenWrt.

  • Silahkan hubungkan perangkat Anda ke SSID OpenWrt terlebih dulu, akses halaman login @wifi.id hingga GL.iNet terhubung ke internet, tunggulah beberapa saat agar Tor terhubung ke jaringan, kemudian disconnect dari SSID OpenWrt untuk menikmati akses internet secara anonym melalui Tor dengan menghubungkan perangkat Anda ke SSID Tor atau kabel LAN, akses ke alamat https://check.torproject.org/?lang=id untuk memastikan Anda terhubung secara anonym.

Sampai nanti di tulisan berikutnya.

Rujukan