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