Docker podstawy

Docker pozwala umieścić program oraz jego zależności w lekkim, przenośnym kontenerze. 

docker pull ubuntu   //pobierze najświeższy obraz
docker rm [ID]  //usuwa obraz o [ID]
docker start [name] lub [ID]
docker ps -all //wyświetli listę wszystkich kontenerów
docker ps //wyświetli listę uruchomionych kontenerów
docker run -it [nazwa] lub [ID] // uruchomienie interaktywnego terminala podłącza się do kontenera
docker run -dit [nazwa] lub [ID] //uruchomi kontener z wyjściem
docker run -i -t -p 5060:5060 -p 10000-20000:10000-20000 ubuntu-asterisk // uruchomienie z przekazywaniem portów
docker exec -it [id lub nazwa kontenera] bash //wejście do bash uruchomionego kontenera
docker attach [ID] // podłączenie do kontenera
docker inspect [name] // inspekcja kontenera podgląd ustawień
docker commit -m “Instalacja python3 i pip” [name] lub [ID] [nazwa_obrazu] //zapisanie kontenera z message
docker history [nazwa_obrazu] //historia prac
docker cp ./aplikacja [nazwa_kontenera]:[lokalizacja] //kopiowanie plików z systemu do środka kontenera
docker cp ./pythonapp pytkonapp:/home/  //uruchomienie z skryptem, zamyka i usuwa
docker -it –rm bash wget -I – -q 172.17.0.3:80 // uruchomienie bash wykonanie polecenia i usuniecie
docker run -it –name [nazwa] –rm -w [katalog] -p 8000:5000 [nazwa_obrazu] [polecenie_do_programu]  // uruchomienie kontenera z przejściem do katalogu, uruchomienie programu, przekierowanie portu ZEW:WEW
docker-compose up -d // uruchomienie compose w tle
docker-compose up -d service_name // uruchomienie jednego serwisu
docker-compose -f plik.yml up -d // uruchomienie docker compose z pliku

Pobranie adres IP kontenera
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' [nazwa_kontenera_lub_ID_]
Lista wszystkich IP kontenerów
docker ps -q | xargs -n 1 docker inspect --format '{{ .Name }} {{range .NetworkSettings.Networks}} {{.IPAddress}}{{end}}'
Przypisanie stałego adresu IP w docker-compose.yml
docker-compose.yml
    networks:                                                                                                                                                                                                                                                                  
      bridge:                                                                                                                                                                                                                                                                  
        ipv4_address: 172.17.0.2
Docker wykonanie komendy mysql dump
docker exec docker_mysql-server_1 sh -c 'exec mysqldump --defaults-file=/var/lib/mysql/mydb.cnf zabbix > /var/lib/mysql/zabbix.sql'
Docker wejście do root kontenera 
docker exec -u 0 -it [IDCONTERNER] /bin/bash 

Error Docker


ERROR: Pool overlaps with other one on this address space

Wykonaj:

docker network prune

Budowa Dockerfile php apache buster

FROM php:8-apache-buster
WORKDIR /var/www/html
COPY . /var/www/html             //kopiuje pliki z katalogu w którym jest dockerfile do html

Tworzenie obrazu i uruchomienie:
docker build . -t docker/php_apache
docker run -p 80 docker/php_apache
docker ps      //sprawdzamy jaki port został przydzielony i mapowany do :80 

Budowa Dockerfile node

FROM node:13-buster-slim         
WORKDIR /app
COPY [“package.json”, plik , “./” ]  //kopiujemy dwa pliki do bieżącego katalogu
RUN npm install –production
ENV NODE_ENV=production
COPY . .
CMD [“npm”, “start” //npm start jeżeli w package.json ustawiony został start

Instalacja ubuntu

Automatyczny start docker po rozruchu systemu:

sudo systemctl enable --now docker 

Wyłączenie autostartu:

sudo systemctl disable --now docker

Przypisanie uprawnień dla użytkownika

 sudo usermod -aG docker tomasz

Oficjalny podręcznik
Docker hub