3
Запуск контейнера Docker с образом teeks99/clang-ubuntu
Откройте командную строку (Windows), терминал (macOS/Linux) или командную оболочку (Linux) и выполните следующие действия, чтобы запустить контейнер Docker, содержащий образ teeks99/clang-ubuntu.
1. С помощью команды cd перейдите в папку examples, содержащую все наши примеры исходного кода.
2. В Windows: запустите контейнер Docker следующей командой
51
:
docker run --rm -it -v "%CD%":/usr/src teeks99/clang-ubuntu:13
3. В macOS / Linux: запустите контейнер Docker следующей командой:
docker run --rm -it -v "$(pwd)":/usr/src teeks99/clang-ubuntu:13
В этих командах:
• --rm очищает ресурсы контейнера, когда вы его закрываете.
• --it запускает контейнер в интерактивном режиме, поэтому вы можете вводить команды для изменения папок, а также для компиляции и запуска программ с помощью clang++.
• -v "%CD%":/usr/src (Windows) или -v "$(pwd)":/usr/src (macOS/Linux) позволяет контейнеру Docker получить доступ к файлам в папке, из которой выполняется команда docker run. В контейнере Docker вы перейдете с помощью команды cd к папке /usr/src, чтобы компилировать и запускать примеры из книги. Другими словами, ваша локальная системная папка будет сопоставлена с папкой /usr/src в контейнере Docker.
• teeks99/clang-ubuntu:13 — это имя контейнера.
Когда контейнер будет запущен, вы увидите примерно такое приглашение:
root@9753bace2e87:/#
В контейнере работает операционная система Linux. В приглашении контейнера имя папки, в которой вы находитесь, отображается между символами : и #.
Переход к папке ch01 в контейнере Docker
Введенная вами команда docker run присоединила вашу папку examples к папке /usr/src файловой системы контейнера. Теперь в контейнере Docker с помощью команды cd перейдите к папке ch01, которая находится в /usr/src:
root@9753bace2e87:/# cd /usr/src/ch01
root@9753bace2e87:/usr/src/ch01#
Компиляция приложения
Перед запуском приложения надо его скомпилировать. Например, если в контейнере установлен компилятор clang++-13, выполните следующую команду:
clang++-13 -std=c++20 GuessNumber.cpp -o GuessNumber
В этой команде:
• Параметр -std=c++20 указывает компилятору, что мы используем C++20.
• Параметр -o присваивает исполняемому файлу имя (GuessNumber), которое затем будет нужно для запуска программы. Если вы не включите этот параметр, clang++ автоматически
Компиляция и запуск приложения в контейнере Docker с помощью g++
С компилятором g++, входящим в состав GNU Compiler Collection (GCC), вы можете работать не только в Linux, но также в Windows и macOS. Один из лучших способов реализовать это кросс-платформенное решение — запустить контейнер (container) Docker, содержащий GCC. Мы предполагаем, что вы уже установили Docker Desktop (в Windows или macOS) или Docker Engine (в Linux) по инструкции из раздела «Перед началом работы».
Запуск контейнера Docker с GNU Compiler Collection (GCC)
Откройте командную строку (в Windows), терминал (в macOS/Linux) или командную оболочку (в Linux). Затем выполните следующие действия, чтобы запустить контейнер Docker с GCC:
1. С помощью команды cd перейдите в папку examples, содержащую все наши примеры исходного кода.
2. В Windows: запустите контейнер Docker следующей командой
48
:
docker run --rm -it -v "%CD%":/usr/src gcc:latest
3. В macOS/Linux: запустите контейнер Docker следующей командой:
docker run --rm -it -v "$(pwd)":/usr/src gcc:latest
В этих командах:
• --rm очищает ресурсы контейнера, когда вы его закрываете.
• --it запускает контейнер в интерактивном режиме, поэтому вы можете вводить команды для изменения папок, а также для компиляции и запуска программ с помощью g++.
• -v "%CD%":/usr/src (в Windows) или -v "$(pwd)":/usr/src (в macOS/Linux) позволяет контейнеру Docker получить доступ к файлам в папке, из которой выполняется команда docker run. В контейнере Docker вы перейдете с помощью команды cd к папке /usr/src, чтобы компилировать и запускать примеры из книги. Другими словами, ваша локальная системная папка будет сопоставлена с папкой /usr/src в контейнере Docker.
• gcc:latest — это имя контейнера. Параметр :latest указывает, что вы хотите использовать новейшую версию контейнера gcc
49
.
Когда контейнер будет запущен, вы увидите примерно такое приглашение:
root@67773f59d9ea:/#
В контейнере работает операционная система Linux. В приглашении контейнера имя папки, в которой вы находитесь, отображается между символами : и #.
Переход к папке ch01 в контейнере Docker
Введенная вами команда docker run присоединила вашу папку examples к папке /usr/src файловой системы контейнера. Теперь в контейнере Docker с помощью команды cd перейдите к папке ch01, которая находится в /usr/src: