Monthly Archives: March 2015

Stuhleck se City Ski, aneb moje první setkání s Alpami

Na snowboardu jsem se naučil už pěkných pár let zpátky, ale nikdy jsem tomu ježdění moc nedal. Ani jsem na horách nestrávil moc času. Moje zážitky ze sjezdovky se v zásadě omezovaly na sbírání sebe sama ze země, vytřepávání sněhu z bundy a protahování pokroucených a potlučených končetin a tak podobně:).

Letos se to ale nějak zlomilo - vyrazili jsme s Marťou na pár dní do Vrbna pod Pradědem a vážně jsem si to užil. V podstatě bez zranění, beze strachu při pohledu dolů ze sjezdovky a dokonce jsem si na tom prkýnku nepřipadal ani jako úplná lama. Nebýt všudypřítomné mlhy, bylo to skoro perfektní. Protože to bylo tak super, rozhodli jsme se vyrazit na hory ještě jednou. Já v Alpách nikdy nebyl a moc jsem chtěl zjistit, jestli to stojí za to. Narazili jsme u piva na CitySki.cz a jejich jednodenní lyžovačky pro měšťáky a zaujal nás Stuhleck.

Za 1 500 Kč cesta a skipas, ráno tam, večer zpátky, no nekupte to! Takže se Tomáš zaúkoloval, že bude hlídat termíny a když to přišlo, poslali jsme rezervaci, přečetli si vtipný potvrzovací mail a nemohli se dočkat. Systém je to jednoduchý - předem se nic neplatí, všechno až před nástupem do autobusu - 1 500 Kč + 2 € záloha na skipas, který jsme dostali hned při nástupu, takže žádné zbytečné zdržování po příjezdu.

Fascinující na cestě tam bylo, že s tím, jak jsme stoupali, vůbec nepřibývalo sněhu;). Pak jsme projeli tunelem a...pořád nic. Jenže potom jsme koukli vlevo a on tam kopec, zasněžený, vysoký, s lanovkou..aháá. Tak tohle jsou ty Alpy. Takže nasedneme na čtyřsedačkovou lanovku, jedeme do kopce, a pak z kopce, a pak hodně do kopce, vystoupíme, sjedeme pár metrů a jedeme zase do kopce. Nahoře zjistíme, že jsme sice na hoře, ale ne ještě úplně nahoře. Takže dolů, držet se vlevo a hurá na vrchol.

Jezdilo se parádně. Bylo znát, že dole je cca +10 °C, takže sníh na spodní části sjezdovky stál docela za prd, ale nahoře to byla nádhera. Bylo jasno a mně se taky docela vyjasnilo - promiň Vrbno, bylo v tobě pěkně, ale příští rok chci do Alp.

A co ještě říct k samotnému City Ski? Organizace bezproblémová, autobus bez připomínek, řidiči velmi zvláštní s neustálými pokusy o vtipy, což vedlo pouze k našim pochybovačným pohledům ohledně jejich duševního zdraví (nic ve zlém, díky, že jste nás někde nevyklopili, nebo tak). Na zpáteční cestě nám pustili film, ale vzhledem k umístění 2 obrazovek a tomu, že jsme seděli až vzadu "na pětce", jsem nic neviděl - slyšel jsem na druhou stranu moc dobře, což mělo za následek, že jsem se ani cestou nemohl prospat, škoda:).

Každopádně si myslím, že to nebyl náš poslední výlet se City Ski a pravděpodobně jsme se ani naposledy neviděli se Stuhleckem. Ale teď už sbohem zimo a díky za všechny ryby...eh, sjezdy.

Jak jsem skoro zazdil InstallFest 2015

To máte tak, spousta práce, trocha nepozornosti a pozvánka na víc akcí (skoro) najednou. Tenhle koktejl okolností způsobil, že jsem byl poměrně dlouhou dobu přesvědčen, že InstallFest 2015 se koná přístí víkend (tedy 14. a 15. března). To si tak ve čtvrtek večer projíždíte Twitter a najednou zmínka o tom, že placky už jsou připraveny na sobotu. Sobotu? Jako tuhle sobotu? Hmm..

Snímek z 2015-03-07 17:58:04

A fakt že jo! No co, jdete spát a říkáte si: "Slajdy udělám zítra v práci, to bude hned." Jenže v práci furt někdo otravuje, něco chce, takže uděláte prd. Tak prý doma, večer. Jenže to se vypravíte na jídlo a pivo. Teda hned po tom si aspoň ráno koupíte jízdenku;). Tak fajn, slajdy se spáchají ráno před odjezdem. Ráno se vyštracháte z postele, koukáte na prázdnou prezentaci a říkáte si: "Co jsem to těm lidem vlastně chtěl říct, když jsem tu prezentaci posílal?" Něco spatláte a pak strávíte ještě půlku cesty dolaďováním a přemýšlením, co jste to vlastně ráno měli v hlavě.

Takže slidy by byly, co demo? Hmm, jak to znám, na demo nedojde a když, bude jiné v závislosti na dotazech. To snad ani nemá cenu chystat;). A měl jsem rpavdu, nemělo!

Klapka, jedem...

"Dovolte mi, abych vás přivítal na své přednášce. Na úvod se vás chci zeptat...ale co to plácám. Tak já se asi představím, co?" Jak vidíte, začal jsem zkušeně, tedy chci říct zmateně. Ovšem tu otázku jsem položil: "Kdo jste slyšeli o Dockeru před tím, než jste si přečetli název téhle přednášky?" Skoro všichni, fajn. "Kdo jste si ho nainstaloval?" zněla další otázka - asi 4 ruce. Uff, to zase budu plácat kraviny. Tak a poslední dotaz: "Ok, kdo jste používali kontejnery ještě před Dockerem?" Tři ruce, sakra, tak tyhle lidi ignorovat, když se budou ptát..ti jsou určitě chytří a ví toho víc než já!

Jak jsem si myslel na začátku, na pořádné demo nedošlo. Ostatně moje jediné "pořádné" demo je to, co jsme popsal v článku Running services with Docker and systemd. Takže se na něj mrkněte a demo si zkuste sami;) Třeba se vám taky rozbije, jako by se to určitě stalo mně.

Také, jako už tradičně, se přednáška zvrhla na Q&A session, kde jsem dostával záludné otázky a poskytoval jsem na ně v zásadě nesouvisející odpovědi. (Jsem v tom čím dál lepší!) Ale musím říct, že jsem si to s vámi, InstalFesťáci, užil. Hezky jsme pokecali. A navíc jste se mě nikdo nezeptal na síťování, čehož si velice cením!

Upřímně, slajdy samotné vám asi moc neřeknou, ale tady je máte - na konci jsou nějaké odkazy, tak třeba budou užitečné. Přednáška se očividně natáčela, takže jakmile bude, přihodím ještě video. A teď už dobrou noc, jdu si pustit nějaký film, když už si konečně Student Agency obnovilo výběr, a nejspíš si i trochu schrupnu. Ještě jednou díky za účast!

EDIT:

Jak jsem zjistil, video se přímo streamovalo na Youtube, takže tady je záznam přednášky:

My Docker Helpers

I work with Docker almost all the time in my job at Red Hat. Building, running, inspecting containers... Writing same long commands every time you want to run a container or get it's IP starts to annoy you quickly. That's why I started writing small helpers in the form of bash functions which are loaded through .bashrc and thus can be used from cmd line easily.

You can find them in my docker-tools repository but let me introduce them a bit.

docker-rmi-none

If you load/import/build images often, it happens that you end up having a bunch of <none> named images in your docker images output. The above commands removes them all.

docker-rm-all

I use this mostly in VMs where I am limited in terms of disk space - every container, especially when you test f.e. if yum install works, eats some space and this command lets you remove them all quickly.

dr fedora
docker run --name tmp0 -it --rm fedora bash
dr fedora cat /etc/os-release 
docker run --name tmp0 -it --rm fedora cat /etc/os-release
NAME=Fedora
...

This dr command is probably my favourite. It runs bash in the given image with arguments I use the most. You can also specifiy a command to run if you wish so.

dl [PATH_TO_]IMAGE

Simple alias for docker load command with the advantage of being able to load from default directory so you can just give it a file name and it looks in the predefined folder.

de [CONTAINER] [CMD]

The most awesome thing about using functions instead of just aliases is that you can add whatever logic you like. So my de command (representing docker exec) can be called with a container id/name and command  - same as docker exec. But it can also be called without command which then defaults to bash and also without container id/name which default to the last entry in docker ps output. If you want to skip specifying container, but still want to use different cmd than bash, use following syntax:

de "" rpm -qa

I don't use next command as often as those above but I still like it a lot - it let's you print IP address of any container. If container id/name is not specified it uses the same logic as de.

di [CONTAINER]

Last command I have on my list at the moment is dk and you could maybe guess - yes, it's docker kill and it also provides the same logic as the two above.

dk [CONTAINER]

Do you have more aliases/ideas? Let me know I am happy to make my list richer!

Delete an Image from Private Docker Registry

Have you ever wondered how to remove repositories/tags from your private Docker registry? It's simple according to Docker registry API specs. So let's try this

yum -y install docker-registry
sudo systemctl start docker-registry
docker pull fedora:21
docker tag fedora:21 localhost:5000/fedora:21 
curl localhost:5000/v1/repositories/fedora/tags/21

You should see an image id printed to your terminal. Now let's delete the image...

$ curl -X DELETE localhost:5000/v1/repositories/fedora/tags/21
true

To be clear - it does not remove the image/layers data - it just removes the reference from fedora:21 tag to the image id (i.e. data). If there is any other tag referencing the data, they will still be accessible.

Anyway, in some cases it is useful to be able to remove this reference. I run a private registry with 337 images (multiplied by few tags for every image) and I sometimes found myself in a situation where I pushed an image with wrong tag or I just wanted to stop people from pulling a specific image. I wrote a small bash script for these occasions - drrm.sh. The usage is simple

drrm.sh NAME[:TAG]

Which means for our fedora example

$ ./drrm.sh localhost:5000/fedora:21
Do you really want to untag "834629358fe214f210b0ed606fba2c17827d7a46dd74bd3309afc2a103ad0e89"? [y/N]: y
Image library/fedora:21 removed from localhost:5000

Firstly it checks if the image exists, then it asks for confirmation of removal and then it calls the previously shown curl command to delete the reference. I also have a simple "Docker Registry Garbage Collector" under development which goes through the docker-registry directory and moves unreferenced layers away (where you can delete them later). But that's going to be a topic next time:).