Технология наиболее эффективна, когда вы знаете, как с ней работать; Имейте это в виду, когда вы работаете с Docker. Команды, принимающие Docker в первый раз, обычно делают это по рекомендации DevOps. Однако DevOps не всегда может объяснить, как новая команда должна использовать ее, не рискуя преимуществами их существующей системы.
Здесь вы найдете варианты использования разработчиков для конкретных команд, объяснений того, что они делают, и демонстрации. Дайте его своей команде разработчиков, чтобы предотвратить их вопросы, когда вы проходите процесс принятия Docker в вашей компании.
Docker Build
docker build --rm -t docker-examples:latest .
В случае использования: У вас нет файла Docker-Compose, только Dockerfile. Вы хотите запустить свой сервис, но сначала вы должны его построить.
Детали: Создайте изображение из Dockerfile. --rm
используется для удаления промежуточного контейнера после успешной сборки. Без этой опции в вашем списке контейнеров у вас будет что -то подобное после сборки: -t
Теги изображений, которые вы строите, иначе становится трудно с первого взгляда, что содержит.
Ярлык с кодом VS
docker build --rm -t --no-cache docker-examples:latest .
В случае использования: Вы не указали версию пакета зависимостей и хотите обновить до последней версии, но вы не изменили свой DockerFile и Docker постоянно используют кэшированные слои.
Детали: Прикажите докер, чтобы восстановить изображение с нуля.
Docker Run
docker run -d -p 4000:3000 docker-examples:latest
В случае использования: Вы создали изображение Docker и хотите запустить его. Приложение внутри контейнера использует порт 3000, но вы хотите использовать его на 4000 на вашей локальной машине.
Детали: -Д
Запускает контейнер на заднем плане и печатает идентификатор контейнера. -p
публикует контейнерный порт в порт локальной машины host_port: docker_port Анкет
Ярлык с кодом VS
docker run docker-examples:latest
В случае использования: Вы хотите запустить изображение Docker и увидеть/контролировать запуск процесса в вашем терминале. Нажмите Ctrl+C, чтобы выходить из контейнера.
docker run -t -i docker-examples:latest node
В случае использования: Вы хотите запустить определенную команду/инструмент внутри вашего контейнера, использовать ее, а затем запустить новый экземпляр контейнера. Например, если вы хотите получить доступ к консоли Node.js и что -то выполнить. Смотрите также Docker Exec
для уже запускаемых контейнеров.
Docker Stop
docker stop container_name
В случае использования: Вам нужно остановить уже запущенный контейнер.
Детали: Вы можете найти имя контейнера, используя команду «Docker ps -a».
Ярлык с кодом VS
docker stop $(docker ps -a -q)
Пример: Остановите все контейнеры
Docker PS
docker ps -a
В случае использования: Вы смотрите на список контейнеров и находите название необходимого вам контейнера, чтобы остановить его. Вы также можете использовать это, чтобы увидеть статус и открытые порты контейнера.
Ярлык с кодом VS
Журналы Docker
docker logs -f container_name
В случае использования: Ваш сервис разбился при запуске, и вы хотите узнать причину. Вы также можете захотеть следить за журналами для обслуживания на постоянной основе.
Детали: Следите за журналами конкретного контейнера; Этот завод для бега и остановки контейнеров. -f
Включите следующее для вывода журнала.
Ярлык с кодом VS
Docker Kill
docker kill $(docker ps -q)
В случае использования: Вы разочарованы Docker и хотите прочитать все, что связано с ним.
Детали: Убивает все беговые контейнеры.
Docker RM
docker rm $(docker ps -a -q)
В случае использования: Ваш список контейнеров грязный, и вы хотите укрепить его.
Детали: Удаляет все остановленные контейнер
Система Docker
docker system prune
В случае использования: Вы хотите избавиться от неиспользованных вещей.
Детали: Удалите все неиспользованные контейнеры, сети, изображения (как висящие, так и беззаботные), и, необязательно, объемы.
Ярлык с кодом VS
Docker RMI
docker rmi $(docker images -q)
В случае использования: Вам нужно больше места на вашем диске.
Детали: Удаляет все изображения
Docker Exec
docker exec -it container_name /bin/sh
В случае использования: Контейнер выбрасывает ошибку тайм -аута подключения «Get» запроса на example.com во время выполнения. Вы можете подключиться к контейнеру и запустить Curl/Ping.
Детали: Запускает определенную команду/инструмент внутри вашего контейнера и позволяет использовать ее внутри контейнера. Очень полезен для отладки и понимания того, что происходит в контейнере Docker.
Docker составить
docker-compose up
В случае использования: У вас есть файл с докером с некоторыми службами, и вы хотите построить и запустить их все и увидеть их результаты.
docker-compose up -d
В случае использования: Вы хотите построить и запустить все услуги на заднем плане и увидеть их статусы позже.
Ярлык с кодом VS
docker-compose up -d example-service-1
В случае использования: Вы хотите запустить конкретную службу (имя, как в файле Docker-Compose), чтобы все порты и объемы были использованы, как это было объявлено в вашем файле Docker-Compose для этой службы.
Docker составить вниз
docker-compose down
В случае использования: Вам нужно остановить все услуги, объявленные в файле Docker-Compose. Это останавливает контейнеры и удаляет сети, объемы и изображения каждого контейнера, созданные IP. Это полезно, когда вы хотите начать с чистого сланца.
Docker-Compose Run
docker-compose run example_app rails db:migrate
В случае использования: Вам необходимо выполнить определенную задачу, которую предоставляет ваш сервис, такой как миграция или тесты. Вы можете сделать это так же, как и Docker Run, но вы можете запустить задачу по имени службы из своего файла с композитом Docker. Имейте в виду, что когда вы используете порты «запустить», вы объявляете в Docker-Compose не будет опубликовано без использования-Service-Ports.
Docker-Compose Exec
docker-compose exec example_app node
В случае использования: Вы хотите получить доступ внутри запускаемого контейнера и выполнить что -то, похожее с Docker Exec. Разница в том, что вы можете получить доступ по имени службы. Полезно для целей отладки, тестовой сети, проверьте, что все данные существуют в контейнере Docker.
Docker-Compose Logs
docker-compose logs -f container_name
В случае использования: Ваш сервис разбился при запуске, и вы хотите знать, почему.
Детали: Часы для журналов конкретного контейнера, как для бега, так и для остановки контейнеров. Вместо использования команды Docker Logs здесь, используйте имя службы вместо имени контейнера. -f
Включите следующее для вывода журнала.
Docker-Compose Stop
docker-compose stop example_app
Используйте вариант: вы хотите остановить свой контейнер по имени службы или имени контейнера.
Docker-Compose Restart
docker-compose restart example_app
В случае использования: Вы хотите перезапустить контейнер с именем службы или имени контейнера.
Хотите узнать больше о Docker?
Мои предыдущие статьи помогут вам понять Docker еще лучше:
- Как отлаживать node.js в контейнере Docker
- Использование Docker для node.js в разработке и производстве
Скоро появится больше статей, поэтому подпишитесь на меня в Twitter @alex_barashkov и Dev.to
Оригинал: «https://dev.to/alex_barashkov/20-docker-commands-use-cases-for-developers-2d9g»