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.