Začínáme s Dockerem – Instalace a první spuštění

Docker je open-source projekt, který umožňuje izolovat aplikace do kontejnerů. Kontejnery sdílejí jádro operačního systému. Spuštění kontejneru pro operační systém znamená spuštění procesu, nikoliv kompletní virtualizace operačního systému. Tím pádem je spuštění kontejneru(ů) méně náročné na zdroje a je jich možno spustit více než virtuálních strojů.

Instalace pro Ubuntu je dobře popsána na stránkách dockeru (viz. zde). Zde ji ukážu krok za krokem.

vitfo@vitfo-VirtualBox:~$ sudo apt-get update 
[sudo] password for vitfo: 
Hit:1 http://security.ubuntu.com/ubuntu xenial-security InRelease
Hit:2 http://cz.archive.ubuntu.com/ubuntu xenial InRelease
Hit:3 http://cz.archive.ubuntu.com/ubuntu xenial-updates InRelease      
Hit:4 http://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease 
Hit:5 http://cz.archive.ubuntu.com/ubuntu xenial-backports InRelease    
Reading package lists... Done                     

Číst dálZačínáme s Dockerem – Instalace a první spuštění

Nastavení klávesových zkratek v Ubuntu

Klávesové zkratky v Ubuntu lze nastavit v: Nastavení systému (ikona s ozubeným kolem v Launcheru – lišta s programy k rychlému spuštění) -> Klávesnice -> Zkratky. Některé činnosti nemají přiřazenu žádnou klávesovou zkratku a jsou označeny jako „Vypnuto“. Některé aktivity (činnosti) jsou přeložené, ale některé mají anglický název. Pokud např. budeme chtít přiřadit klávesovou zkratku zobrazení plochy (zmenšení všech otevřených oken), najdeme si danou aktivitu v záložce Rozcestník, kde najdeme „Hide all normal windows“. V operačním systému Windows má tato činnost přiřazenou klávesovou zkratku klávesa Windows + D. Stejnou použiji i v Ubuntu. Klikněte na „Hide all normal windows“ a stiskněte požadovanou kombinaci kláves. To je vše. Klávesová zkratka je nastavena.

ubuntu-nastaveni-klavesovych-zkratek

Generování názvů kontejnerů v Dockeru

Když vytvoříte nový kontejner v dockeru pomocí docker run a nezadáte parametr --name, docker vytvoří kontejner a pojmenuje ho podle sebe. Vznikají tak zajímavé názvy jako: dazzling_swanson, loving_shockley, wonderful_curran či suspicious_knuth. Jedná se o jména vědců + přídavné jméno. Například Shockley se odkazuje na William Shockley co-invented the transistor – https://en.wikipedia.org/wiki/William_Shockley, Curran na Samuel Curran was an Irish physicist who worked alongside his wife during WWII and invented the proximity fuse čí Knuth na Donald Knuth – American computer scientist, author of „The Art of Computer Programming“ and creator of the TeX typesetting system. https://en.wikipedia.org/wiki/Donald_Knuth.

Nikdy ale kontejner nebude pojmenován boring_wozniak. Proč? Protože Steve Wozniak is not boring:

if name == "boring_wozniak" /* Steve Wozniak is not boring */ {
	goto begin
}

Zde je celý kód metody generující názvy:

func GetRandomName(retry int) string {
begin:
	name := fmt.Sprintf("%s_%s", left[rand.Intn(len(left))], right[rand.Intn(len(right))])
	if name == "boring_wozniak" /* Steve Wozniak is not boring */ {
		goto begin
	}

	if retry > 0 {
		name = fmt.Sprintf("%s%d", name, rand.Intn(10))
	}
	return name
}

Zdroj: frightanic.com/…-default-container-names/

Nastavení JAVA_HOME v Ubuntu

Proměnnou JAVA_HOME nastavíme tak, že si otevřeme soubor /etc/environment a do něj vložíme záznam:

JAVA_HOME="/usr/lib/jvm/java-8-oracle"

Soubor environment znovu načteme:

source /etc/environment

To, že naše proměnná je funkční můžeme otestovat výpisem do konzole:

echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

Zdroj: askubuntu.com/…/how-to-set-java-home-for-java

Instalace Java 8 na Ubuntu

Nejdříve je nutné přidat repozitář do souboru /etc/apt/sources.list příkazem add-apt-repository:

vitfo@vitfo-VirtualBox:/etc/opt/hbase-1.2.6$ sudo add-apt-repository ppa:webupd8team/java
[sudo] password for vitfo: 
 Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK7 / JDK8 / JDK9). There are no actual Java files in this PPA.

Important -> Why Oracle Java 7 And 6 Installers No Longer Work: http://www.webupd8.org/2017/06/why-oracle-java-7-and-6-installers-no.html

Ubuntu 16.10 Yakkety Yak is no longer supported by Canonical (and thus, Launchpad and this PPA). The PPA supports Ubuntu 17.10, 17.04, 16.04, 14.04 and 12.04.

More info (and Ubuntu installation instructions):
- for Oracle Java 7: http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html
- for Oracle Java 8: http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html

Debian installation instructions:
- Oracle Java 7: http://www.webupd8.org/2012/06/how-to-install-oracle-java-7-in-debian.html
- Oracle Java 8: http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html

Oracle Java 9 (for both Ubuntu and Debian): http://www.webupd8.org/2015/02/install-oracle-java-9-in-ubuntu-linux.html

Oracle JDK 9 is now considered stable. There are currently only 64bit builds (no other builds are available for download: http://www.oracle.com/technetwork/java/javase/downloads/index.html )
 More info: https://launchpad.net/~webupd8team/+archive/ubuntu/java
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keyring `/tmp/tmpcs1we49p/secring.gpg' created
gpg: keyring `/tmp/tmpcs1we49p/pubring.gpg' created
gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpcs1we49p/trustdb.gpg: trustdb created
gpg: key EEA14886: public key "Launchpad VLC" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

Aktualizovat (update) informace o balíčcích příkazem apt update:

Číst dálInstalace Java 8 na Ubuntu

Příkaz tar a jeho podivnosti

Příkaz tar se používá k uložení souborů do jediného archivačního souboru (z několika souborů se vytvoří jeden).

Původně pomáhal při archivaci souborů na páskových jednotkách, ale později se jeho užívání rozšířilo a dnes je používán zkrátka tam, kde je vhodné pro účely distribuce či archivace sloučit více souborů do jednoho tak, aby se zachovaly informace o adresářové struktuře, přístupových právech a dalších atributech, které běžně souborový systém obsahuje.

Zdroj: https://cs.wikipedia.org/wiki/Tar_(informatika)

A jaké podivnosti? Většině příkazů je jedno, v jakém pořadí se uvádějí přepínače. Zda uvedete -cfv nebo -cvf je většinou jedno. Zde tomu ale tak není. Přepínač -c znamená create (vytvořit archív). Přepínač -f znamená file (vytvoř soubor) a očekává název souboru, který má vytvořit. Přepínač -v znamená verbose (vypisuje informace o průběhu). Pokud zadáte přepínače v pořadí -cfv nazev_souboru adresar_se_soubory, skončí to chybou případně vytvořením archivu s názvem v (c vytvoř archiv, f jako soubor, v s tímto názvem). Při googlení jsem narazil na tuto větu, která příkaz tar pěkně vystihuje:

tar’s command line is one of Unix’s little mysteries

Zdroj: https://docstore.mik.ua/orelly/unix3/upt/ch38_12.htm

Nejjednodušším řešení je používat přepínače bez znaku -.

tar cfv mujarchiv.tar adresar

Volné místo na disku v Linuxu

Pro zjištění volného místa na disky slouží příkaz df -h (human readable)

Souborový systém Velikost Užito Volno Uži% Připojeno do
/dev/sda1            6,8G  6,3G  169M  98% /
none                 4,0K     0  4,0K   0% /sys/fs/cgroup
udev                 487M  4,0K  487M   1% /dev
tmpfs                100M  916K   99M   1% /run
none                 5,0M     0  5,0M   0% /run/lock
none                 497M     0  497M   0% /run/shm
none                 100M   20K  100M   1% /run/user
Sdílené              215G  189G   26G  89% /media/sf_Sdílené

Velikost RAM v Linuxu

Informace o operační paměti se nacházejí v souboru /proc/meminfo.

less /proc/meminfo
MemTotal:        1017048 kB
MemFree:          338264 kB
MemAvailable:     628572 kB
Buffers:           81348 kB
...

K zobrazení informací o paměti ve zjednodušené a čitelné podobě slouží příkaz free s přepínačem -h (zobrazí výstup s příponami označující velikost: K – kilo, M – mega, G – giga, …)

             total       used       free     shared    buffers     cached
Mem:          993M       662M       330M       2,6M        79M       307M
-/+ buffers/cache:       275M       717M
Swap:         1,0G         0B       1,0G

Zdroj: cyberciti.biz/faq/ram-size-linux/

Alias v Linuxu

Pokud se potřebujete často přepínat do určitého adresáře (například s logy) je vhodné si vytvořit alias. Vhodným umístěním je soubor .bashrc tak, aby byl alias k dispozici po spuštění bashe.

alias plog='cd /var/log/postgresql'

Pokud nyní v bashi napíši plog (funguje doplňování pomocí tabulátoru) a stisknu enter, přepnu se do složky /var/log/postgresql. Příkazy lze řetězit, takže tento alias

alias plog='cd /var/log/postgresql; ls -al'

provede nejen přepnutí do adresáře /var/log/postgresql, ale rovnou i vypíše jeho obsah.