Lista przydatnych komend i instrukcji, które warto mieć pod ręką pracując z dockerem.
PRZYDATNE KOMENDY
• OGÓLNE
# docker version
informacje o wersji
# docker info
podsumowanie pracy dockera
• WYKONYWANIE
# docker exec -i -t CONTAINER_NAME /bin/bash
wykonanie komendy (w przykładzie „/bin/bash”) w uruchomionym kontenerze o nazwie CONTAINER_NAME
• PROCESY
# docker ps -a
lista kontenerów (procesów aktualnie działających)
# docker rm CONTAINER_NAME
usuwanie kontenera o nazwie CONTAINER_NAME (wymagane przed usunięciem obrazu)
• OBRAZY
# docker images
lista obrazów
# docker rmi IMAGE_ID
usuwanie obrazu z listy o ID IMAGE_ID
• COMPOSER – komendy (pracując w katalogu, w którym znajduje się plik „docker-compose.yml”)
# docker-compose up -d
uruchamia „docker-compose.yml” w tle (jako daemon)
# docker-compose stop
zatrzymuje kontenery
# docker-compose ps
lista kontenerów (procesów aktualnie działających)
• REANIMACJA – zdarza się, że coś się poważnie sypnie
Opis zdarzenia, które miało miejsce po aktualizacji i restarcie serwera. Docker odmawia uruchomienia obrazów.:
Recreating docker_mysql-srv_1 ... error
ERROR: for docker_mysql-srv_1 sandbox af827f11c0(…)e45ba073 not found
ERROR: for mysql-srv sandbox af827f11c0(…)e45ba073 not found
ERROR: Encountered errors while bringing up the project.
Komendy które można wykonać:
# docker rm -f $(docker ps -aq)
# docker network rm $(docker network ls -q)
– problem z wykonaniem
# docker run --rm -v /var/lib/docker/network/files:/network busybox rm /network/local-kv.db
– problem z wykonaniem
Próba ponownego uruchomienia i kolejny błąd:
or: desc = "transport: Error while dialing dial unix /run/containerd/containerd.sock: connect: permission denied": unavailable
Ostatecznie wykonanie poniższych komend oraz restart serwera i wszystko wraca do normy.
# sudo apt-get purge docker-ce
# sudo apt autoremove
# sudo rm -rf /var/lib/docker
# sudo truncate -s 0 /var/log/syslog
• SERWIS – uruchamianie dockera z własną konfiguracją
W pierwszej kolejności należy utworzyć odpowiedni plik z konfiguracją serwisu gdzie „docker-compose-jacek” to nazwa serwisu a „WorkingDirectory=/home/jacek/docker” to katalog roboczy, w który powinien znajdować się plik „docker-compose.yml”. Te opcje trzeba ustawić pod siebie. Lokalizacja pliku to /etc/systemd/system/docker-compose-jacek.service
a jego zawartość poniżej.
[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/home/jacek/docker
ExecStart=/usr/bin/docker-compose up -d
ExecStop=/usr/bin/docker-compose down
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
Komenda aktywująca serwis w systemie:
systemctl enable docker-compose-jacek
.
• Konfiguracja sieciowa dostępu do serwisów
Szybka konfiguracja iptables opisana w artykule DOCKER I IPTABLES NA UBUNTU.
• Własne repozytorium obrazów
DOCKER REGISTRY – przydane gdy Docker Hub już nie wystarcza.