Docker
(→Základní příkazy) |
(→Kopírování docker image na jiný system) |
||
(Není zobrazeno 5 mezilehlých verzí od 1 uživatele.) | |||
Řádka 1: | Řádka 1: | ||
+ | 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í. |
||
+ | |||
=== Základní příkazy === |
=== Základní příkazy === |
||
− | |||
− | Využívá linuxové kontejnery LXC Nejedná se o virtualizaci ale je možné přenášet apliakce na příč linuxovými distribucemi. |
||
− | |||
Základní instalace Pro Fedora 21: |
Základní instalace Pro Fedora 21: |
||
Řádka 10: | Řádka 9: | ||
− | Systém spustíme příkazem |
+ | Systém nejprve stáhneme a pak jej spustíme příkazem: |
− | docker run -ti ubuntu:latest /bin/bash |
+ | 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): |
Seznam běžícíh kontejneru (parametr -a vypisuje všechny): |
||
Řádka 23: | Řádka 22: | ||
docker attach <container_id> |
docker attach <container_id> |
||
− | Smazání kontejneru |
+ | Smazání kontejneru (force parametrem -f) |
docker rm <container_id> |
docker rm <container_id> |
||
Řádka 29: | Řádka 28: | ||
Seznam stáhnutých obrazů |
Seznam stáhnutých obrazů |
||
− | docker image |
+ | docker images |
Smazání nacachevaného obrázku |
Smazání nacachevaného obrázku |
||
Řádka 41: | Řádka 40: | ||
RUN apt-get update && apt-get install python-django |
RUN apt-get update && apt-get install python-django |
||
− | + | ||
CMD /bin/bash |
CMD /bin/bash |
||
+ | |||
+ | obraz zkompilujeme pomocí následujícího příkazu. |
||
docker build -t ubuntu-test . |
docker build -t ubuntu-test . |
||
Řádka 49: | Řádka 50: | ||
Build without cache - rebuild all project |
Build without cache - rebuild all project |
||
− | docker build -t ubuntu-test --no-cache=true . |
+ | docker build -t --no-cache=true ubuntu-test ./ |
if you want run with some port, then you can run following command |
if you want run with some port, then you can run following command |
||
Řádka 55: | Řádka 56: | ||
docker -p 8000:80 -i run ubuntu-test |
docker -p 8000:80 -i run ubuntu-test |
||
+ | === 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ů |
||
− | === pomocné příkazy === |
+ | docker rm $( docker ps -qa ) |
− | Smazaní všech stáhnutých obrazů |
+ | === Kopírování docker image na jiný system === |
− | docker images | grep -v IMAGE | awk '{ print $3 }' | xargs docker rmi |
+ | docker save project > project.tar |
+ | docker load -i project.tar |
||
+ | 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