Docker
(→Kopírování docker image na jiný system) |
|||
Řádka 87: | Řádka 87: | ||
docker save project > project.tar |
docker save project > project.tar |
||
docker load -i project.tar |
docker load -i project.tar |
||
− | docker images |
+ | docker images |
Aktuální verze z 6. 2. 2017, 12:18
Jedná se o nadstavbu na linuxovými kontejnery pro které se užívá zkratka LXC. Jen pro ujasněné nejedná se o virtualizaci, myslím, že bližší přirovnání je něco jako chroot a virtualenv. Základní mechanismem je zkompilovaný image nad kterým spustím proces, proces běží v uzavřeném prostředí (kontejneru) ale proces je spuštěný jako jakýkoliv jiný. Takže nelze kontejner chápat jako samostatně běžící systém, ale spíše jej chápat jako proces běžící pod libovolnou distribucí.
[editovat] Základní příkazy
Základní instalace Pro Fedora 21:
yum install docker service docker start
Systém nejprve stáhneme a pak jej spustíme příkazem:
docker pull ubuntu:latest docker run -i ubuntu:latest /bin/bash
Parametr -i udává interaktivní mód, přitom pak -d nám spustí kontejner na pozadí jako deamona.
Seznam běžícíh kontejneru (parametr -a vypisuje všechny):
docker ps -a
Připojení na již vytvořený kontejner
docker start <container_id> docker attach <container_id>
Smazání kontejneru (force parametrem -f)
docker rm <container_id>
Seznam stáhnutých obrazů
docker images
Smazání nacachevaného obrázku
docker rmi <image_id>
Je možné vytvořit soubor Dockerfile, který nám popisuje vlastnosti obrazu.
FROM ubuntu:latest RUN apt-get update && apt-get install python-django
CMD /bin/bash
obraz zkompilujeme pomocí následujícího příkazu.
docker build -t ubuntu-test .
Build without cache - rebuild all project
docker build -t --no-cache=true ubuntu-test ./
if you want run with some port, then you can run following command
docker -p 8000:80 -i run ubuntu-test
[editovat] Pomocné příkazy
Smazaní všech stažených obrazů
docker rmi $(docker images -qa)
Pokud chcete smazat jen některé je potřeba seznam obrazů vyfiltrovat <IMAGE>
docker rmi $(docker images | grep -v <IMAGE> | awk '{ print $3 }' )
Příkaz jde použít i k promazání nekompletních buildů
docker rmi -f $( docker images -a | grep "<none>" | awk '{ print $3 }' )
Zastavení všech běžících kontejnerů
docker stop $( docker ps -q )
Smazání všech kontejnerů
docker rm $( docker ps -qa )
[editovat] Kopírování docker image na jiný system
docker save project > project.tar docker load -i project.tar docker images