Docker

Z Varhoo
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Docker)
(Kopírování docker image na jiný system)
 
(Není zobrazeno 10 mezilehlých verzí od 1 uživatele.)
Řádka 1: Řádka 1:
=== Docker ===
+
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í.
 
Využívá linuxové kontejnery LXC Nejedná se o virtualizaci ale je možné přenášet apliakce na příč linuxovými distribucemi.
 
   
  +
=== Základní příkazy ===
   
 
Základní instalace Pro Fedora 21:
 
Základní instalace Pro Fedora 21:
Řádka 8: Řádka 9:
   
   
Systém spustíme příkazem
+
Systém nejprve stáhneme a pak jej spustíme příkazem:
   
docker -ti run 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 21: Řá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 27: Řá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 42: Řádka 43:
 
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 .
  +
  +
  +
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
  +
  +
=== 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 )
  +
  +
=== Kopírování docker image na jiný system ===
  +
  +
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
Osobní nástroje