Поиск по сайту
Ctrl + K
Вопросы по Docker

Как развернуть Docker-контейнер на удалённом хосте?

Развертывание Docker-контейнера на удалённом хосте может быть выполнено несколькими способами. Рассмотрим один из самых распространённых подходов, который включает использование SSH для доступа к удалённой машине и передачу необходимых команд.

Шаги для развертывания Docker-контейнера на удалённом хосте

  • Подготовка удалённого хоста: Убедитесь, что Docker установлен на удалённой машине. Для этого выполните следующую команду:
    ssh username@remote_host "docker --version"
    

    Если Docker не установлен, вы можете установить его, следуя официальной документации Docker для своей операционной системы.
  • Передача Docker-образа на удалённый хост: Если у вас уже есть Docker-образ, который вы хотите развернуть, его можно загрузить на удалённый хост с помощью docker save и scp. Вот как это сделать:
    # На локальном хосте
    docker save -o myapp.tar myapp:latest
    
    # Передача образа на удалённый хост
    scp myapp.tar username@remote_host:/path/to/destination
    
  • Импорт образа на удалённом хосте: После того как вы передали образ на удалённый хост, вам нужно будет загрузить его в Docker:
    ssh username@remote_host "docker load -i /path/to/destination/myapp.tar"
    
  • Запуск контейнера: Теперь, когда образ загружен, вы можете запустить контейнер:
    ssh username@remote_host "docker run -d -p 80:80 myapp:latest"
    

    Здесь -d запускает контейнер в режиме фонового выполнения, а -p 80:80 перенаправляет порт 80 локального хоста на порт 80 контейнера.
  • Альтернативный способ: Использование Docker Hub

    Если вы хотите избежать передачи образа вручную, можно использовать Docker Hub. Для этого необходимо сначала залить ваш образ в Docker Hub:

    docker tag myapp:latest username/myapp:latest
    docker push username/myapp:latest
    

    Теперь на удалённом хосте вы можете просто выполнить:

    ssh username@remote_host "docker pull username/myapp:latest"
    ssh username@remote_host "docker run -d -p 80:80 username/myapp:latest"
    

    Заключение

    Развёртывание Docker-контейнеров на удалённые хосты может быть выполнено разными способами. Выбор подхода зависит от ваших нужд и инфраструктуры. Используя SSH и Docker Hub, вы сможете эффективно управлять вашими контейнерами на удалённых серверах.

    Содержание:
    Редактировать