Docker и Docker Compose - Некоторые заметки
Добавлено: 17 янв 2023, 08:41
Docker и Docker Compose - Быстрая установка с помощью скрипта
Скачиваем официальный скрипт Docker+Docker Compose и сразу переименовываем:
Теперь запускаем скрипт установки:
Проверяем после установки:
Код: Выделить всё
curl -fsSL https://get.docker.com -o get-docker.sh
Код: Выделить всё
sh ./get-docker.sh
Код: Выделить всё
docker --version
Код: Выделить всё
docker compose version
Посмотреть контейнеры
Только запущенные
Все контейнеры
Показать все контейнеры и отображать размер
Код: Выделить всё
docker ps
Код: Выделить всё
docker ps -a
Код: Выделить всё
docker ps -a -s
Очистка неиспользуемых данных
Код: Выделить всё
docker system prune
Поиск и удаление недействительных образов
Код: Выделить всё
docker images -f dangling=true
Код: Выделить всё
docker rmi $(docker images -f dangling=true -q)
Недействительные образы – это уровень образов, которые больше не имеют никакого отношения к образам с метками — они впустую потребляют дисковое пространство.
Как редактировать файл в контейнере?
Есть несколько способов достичь этого:
Вы можете войти в контейнер, выполнив команду:
Примечание однако в зависимости от контейнера у вас может не быть простого текстового редактора..
Другой альтернативой было бы скопировать файл, который вы хотите отредактировать, из контейнера на ваш хост, запустив его:
.
Отредактируйте файл и скопируйте его обратно в контейнер:
Третий вариант-создать bind mount , который будет эффективно предоставлять файл из контейнера на хост
...
Это позволит открыть папку контейнера в каталоге "files", и вы можете редактировать файл на хосте, и он будет непосредственно отражен внутри контейнера.
Вы можете войти в контейнер, выполнив команду:
Код: Выделить всё
docker exec -it <container-name> bash
Другой альтернативой было бы скопировать файл, который вы хотите отредактировать, из контейнера на ваш хост, запустив его:
Код: Выделить всё
docker cp <container-name>:/path/to/file/in/container
Отредактируйте файл и скопируйте его обратно в контейнер:
Код: Выделить всё
docker cp <file> <container-name>:/path/to/file/in/container
Код: Выделить всё
docker run -v $(pwd)/files:/dir/containing/file/in/container
Это позволит открыть папку контейнера в каталоге "files", и вы можете редактировать файл на хосте, и он будет непосредственно отражен внутри контейнера.
Как удалить сразу все контейнеры?
Для начала останавливаем все контейнеры
А теперь удаляем
Код: Выделить всё
docker stop $(docker ps -a -q)
Код: Выделить всё
docker rm $(docker ps -a -q)
Резервное копирование и восстановление
Как создать резервную копию и восстановить контейнер Docker?
Docker позволяет автоматизировать процесс создания и развертывания приложения. Он также позволяет нам создать пакетную среду для запуска приложения, что делает его легко переносимым и легким, а также позволяет отслеживать версии. Все это возможно с помощью контейнеров Docker. Они помогают сделать приложения независимыми от платформы.
Допустим, на нашей машине запущен контейнер docker, и мы хотим сделать снимок или сохранить резервную копию этого контейнера, чтобы в случае непредвиденных обстоятельств, если мы захотим откатить изменения или запустить контейнер с предыдущей временной меткой, мы могли легко сделать это с помощью сохраненных резервных копий. Таким образом, резервное копирование docker-контейнера и восстановление может стать важным компонентом проекта.
В этой статье рассмотривается, как создавать резервные копии и восстанавливать контейнеры Docker с помощью определенных команд. Также необходимо отметить, что используемые в этой статье процессы резервного копирования контейнера docker не работают, если контейнеры используют отдельные тома данных. Для резервного копирования контейнеров docker, использующих отдельные тома данных, нам необходимо создать отдельную резервную копию для каждого из томов данных.
Резервное копирование контейнера Docker
Прежде всего, для резервного копирования контейнера docker нужен идентификатор контейнера данного конкретного контейнера. С помощью команды ps получаем идентификаторы всех запущенных контейнеров и копируем нужный для резервного копирования.
Для этого необходимо выполнить следующую команду:
После этого скопируйте идентификатор контейнера docker, для которого вы хотите создать резервную копию. Для создания моментального снимка контейнера docker используется команда docker commit. Формат команды Docker commit следующий:
Чтобы сохранить образ в виде tar-файла на локальной машине, можно использовать следующую команду:
Проверим наличие сохраненного tar-файла:
Вы также можете отправить резервную копию образа непосредственно в реестр docker. Для этого используйте следующую команду:
Замените имя пользователя на имя пользователя вашего хаба docker.
Восстановление контейнера Docker
После создания резервной копии контейнера docker, если необходимо восстановить контейнер для его использования, вот как это можно сделать.
Если было сохранено tar-файлом на хост-машине, можно просто восстановить его с помощью команды docker load. Для этого используйте приведенную ниже команду:
Чтобы подтвердить, был ли образ успешно восстановлен или нет, можно вывести список всех образов с помощью следующей команды:
Если резервная копия образа была помещена в реестр docker, ее можно извлечь обратно с помощью следующей команды:
После того как восстановленный образ будет размещен на локальной машине, с помощью команды docker run можно запустить новый экземпляр восстановленного образа docker. Для этого можно использовать команду, приведенную ниже:
Если необходимо перенести контейнер docker, запущенный на хост-машине, на другую машину, для этого можно использовать комбинацию обоих процессов (резервного копирования и восстановления). Если создана резервная копия образа и размещена в реестре docker, можно просто войти на целевую машину и извлечь резервную копию образа. В случае, если были созданы tar-файлы для резервного копирования контейнера, можно скопировать и вставить tar-файл на целевую машину и использовать команду docker load для загрузки образа, а затем выполнить команду docker run для запуска контейнера.
Docker позволяет автоматизировать процесс создания и развертывания приложения. Он также позволяет нам создать пакетную среду для запуска приложения, что делает его легко переносимым и легким, а также позволяет отслеживать версии. Все это возможно с помощью контейнеров Docker. Они помогают сделать приложения независимыми от платформы.
Допустим, на нашей машине запущен контейнер docker, и мы хотим сделать снимок или сохранить резервную копию этого контейнера, чтобы в случае непредвиденных обстоятельств, если мы захотим откатить изменения или запустить контейнер с предыдущей временной меткой, мы могли легко сделать это с помощью сохраненных резервных копий. Таким образом, резервное копирование docker-контейнера и восстановление может стать важным компонентом проекта.
В этой статье рассмотривается, как создавать резервные копии и восстанавливать контейнеры Docker с помощью определенных команд. Также необходимо отметить, что используемые в этой статье процессы резервного копирования контейнера docker не работают, если контейнеры используют отдельные тома данных. Для резервного копирования контейнеров docker, использующих отдельные тома данных, нам необходимо создать отдельную резервную копию для каждого из томов данных.
Резервное копирование контейнера Docker
Прежде всего, для резервного копирования контейнера docker нужен идентификатор контейнера данного конкретного контейнера. С помощью команды ps получаем идентификаторы всех запущенных контейнеров и копируем нужный для резервного копирования.
Для этого необходимо выполнить следующую команду:
Код: Выделить всё
sudo docker ps −a
Напримерsudo docker commit −p <CONTAINER_ID> <BACKUP_NAME>
Код: Выделить всё
sudo docker commit −p 5c2f44fbb535 backup-ubuntu
Код: Выделить всё
sudo docker save −o ∽/backup−ubuntu.tar backup−ubuntu
Код: Выделить всё
sudo ls −l ∽/backup−ubuntu.tar
Код: Выделить всё
sudo docker login
Код: Выделить всё
sudo docker push backup−ubuntu:tag
Восстановление контейнера Docker
После создания резервной копии контейнера docker, если необходимо восстановить контейнер для его использования, вот как это можно сделать.
Если было сохранено tar-файлом на хост-машине, можно просто восстановить его с помощью команды docker load. Для этого используйте приведенную ниже команду:
Код: Выделить всё
sudo docker load −i ∽/backup-ubuntu.tar
Код: Выделить всё
sudo docker images
Код: Выделить всё
sudo docker pull backup-ubuntu:tag
Код: Выделить всё
sudo docker run −ti backup−ubuntu:tag