Що таке автономний режим у світі докерів? Я прочитав цю статтю " Посилання" , але вона не пояснює, що саме означає "відключений режим".
Що таке автономний режим у світі докерів? Я прочитав цю статтю " Посилання" , але вона не пояснює, що саме означає "відключений режим".
Відповіді:
Ви можете запустити контейнер докера в автономному режимі з -d
опцією. Отже, контейнер запускається і працює у фоновому режимі. Це означає, що ви запускаєте контейнер і можете використовувати консоль після запуску для інших команд.
Протилежність відокремленому режиму - режим переднього плану. Це режим за замовчуванням, коли -d
параметр не використовується. У цьому режимі консоль, яку ви використовуєте для запуску, docker run
буде приєднана до стандартного вводу, виводу та помилки. Це означає, що ваша консоль приєднана до процесу контейнера.
У від'єднаному режимі ви можете стежити за стандартним висновком вашого контейнера докера за допомогою docker logs -f <container_ID>
.
Просто спробуйте обидва варіанти. Я завжди використовую відокремлений режим для запуску своїх контейнерів. Сподіваюся, я міг би пояснити це трохи зрозуміліше.
docker logs -f [container_ID] > logs.txt
. Якщо це не працює, спробуйте додати прапор '-it' під час запуску контейнера докера, як запропоновано @BMitch нижче.
Параметр від'єднання в командному рядку докера вказує, що клієнт докера ( docker
) зробить запит на сервер ( dockerd
), а потім клієнт вийде, поки цей запит триває на сервері. Частковою плутаниною може бути те, що docker виглядає як єдиний процес, де насправді це програма клієнт / сервер, де клієнт - це лише тонкий інтерфейс REST API, який надсилає кожну команду на сервер.
Якщо docker container run --detach
це означає, це означає, що контейнер буде створений, сервер відповість ідентифікатором контейнера у разі успіху, і контейнер буде продовжувати працювати на сервері, поки ви зможете запускати інші команди. Це часто використовується для сервера (наприклад, nginx), який ви хочете запустити у фоновому режимі, поки ви продовжуєте виконувати інші команди. Зверніть увагу, що ви все ще можете налаштувати контейнер за допомогою параметрів --interactive
і -tty
(часто скорочених -it
), а пізніше запустити a docker container attach
для підключення до вже запущеного контейнера. (Зверніть увагу, доки ви не приєднаєтесь до контейнера, що працює -itd
, будь-яка спроба контейнера прочитати з stdin буде зависати, замість того, щоб бачити кінець введення, який часто викликає негайний вихід, якщо ви щойно пройшли -d
.)
Якщо ви працюєте без опції від'єднання, клієнт одразу ж запустить виклик API приєднання після створення контейнера, щоб ви могли бачити вихідні дані та необов'язково надавати вхідні дані до запущеного процесу на контейнері. Це корисно, якщо у вашому контейнері працює щось інтерактивне (наприклад /bin/bash
).
Кілька інших команд дозволяють від'єднати опцію, включаючи docker-compose up -d
яку запускає весь проект і залишає його запущеним на сервері у фоновому режимі. Також є багато docker service
команд, які або від’єднаються після подання змін на сервер для створення або оновлення цільового стану служби, або якщо ви не від’єднаєтеся, клієнт буде чекати, поки поточний стан служби збігається з цільовим станом, і ви можете побачити хід розгортання. Зверніть увагу на docker service
команди, можливо, вам доведеться передати, --detach=false
щоб залишатися приєднаним, поведінка змінилася за останній рік залежно від вашої версії.
--detach-keys
)
--interactive
і --tty
(інакше -it
), щоб це працювало.
docker run -d -t ubuntu:14.04
docker run - Створіть екземпляр із образу docker як контейнер docker. (якщо зображення недоступне локально, воно витягується з концентратора докера) ubuntu - Назва зображення
14.04 - тег
-d, --detach - Режим від'єднання
-t, --tty - Виділити псевдо-TTY