Docker

Z Varhoo
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(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
Osobní nástroje