По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
![img](/static/images/general/icons/servers_how-to.png)
Эти команды помогут вам независимо от того, какую операционную систему вы используете - Linux, Windows или macOS
На сегодняшний день создание виртуальной среды, или виртуализация, является одной из основных компьютерных технологий. С виртуальной машиной вы можете запустить практически любую операционную систему по вашему выбору на своем ПК, не разоряясь на дополнительное оборудование.
Давайте рассмотрим, как использовать терминал командной строки для управления виртуальными машинами VirtualBox независимо от операционной системы, будь то Windows, macOS или Linux. Все установки VirtualBox сопровождаются инструментом командной строки VBoxManage – мощной и гибкой утилитой для управления вашими виртуальными машинами.
Что такое VBoxManage?
VBoxManage – это инструмент интерфейса командной строки, устанавливаемый по умолчанию как часть установки программного обеспечения VirtualBox.
В отличие от управления виртуальными машинами через графический интерфейс, интерфейс командной строки VBoxManage дает больше функциональных возможностей, поскольку он обеспечивает прямой доступ к механизму виртуализации, что позволяет получить доступ к дополнительным функциям, которые недоступны через графический интерфейс. К тому же, большинство серверов Linux не имеют графического интерфейса вовсе, так что виртуальными машинами можно будет управлять даже в автономном режиме.
Все команды VBoxManage начинаются со слова vboxmanage и обычно сопровождаются подкомандой, такой как list, controlvm и т.д. Часто требуется указать имя виртуальной машины, которую вы хотите настроить или которой хотите управлять.
1. Список виртуальных машин
Здесь показано, как вы можете просмотреть список всех виртуальных машин, зарегистрированных на вашем ПК. Каждой виртуальной машине присваивается универсальный уникальный идентификатор, который используется для уникальной идентификации.
vboxmanage list vms
Если вам нужен более подробный список, добавьте флаг –l или –long к команде vboxmanage list vms. На выходе будет отображаться подробная информация, такая как конфигурация каждой виртуальной машины, сведения об аппаратном оборудовании, настройки и т.д.
Чтобы вывести список всех запущенных в данный момент виртуальных машин, используйте подкоманду list с параметром runningvms:
vboxmanage list runningvms
2. Запуск и остановка виртуальных машин
Чтобы запустить виртуальную машину с помощью VBoxManage, воспользуйтесь подкомандой startvm, за которой следует имя виртуальной машины или ее универсальный уникальный идентификатор. Например, вы можете выполнить команду ниже, чтобы запустить виртуальную машину с именем Windows11.
vboxmanage startvm Windows11
Когда дело дойдет до остановки виртуальной машины, то у вас будет несколько вариантов. У вас есть возможность полностью остановить, то есть выключить, виртуальную машину или поставить ее на паузу.
Чтобы остановить виртуальную машину, воспользуйтесь подкомандой controlvm, за которой следует имя виртуальной машины, а затем параметр poweroff.
vboxmanage controlvm Windows11 poweroff
Если вы хотите, чтобы виртуальная машина просто не потребляла системные ресурсы, то не обязательно ее выключать, вы можете приостановить ее работу и возобновить ее позже.
vboxmanage controlvm Windows11 pause
Чтобы восстановить работу приостановленной виртуальной машины, воспользуйтесь следующей командой:
vboxmanage controlvm Windows11 resume
3. Получение сведений о виртуальной машине
Чтобы просмотреть сведения, относящиеся к конкретной виртуальной машине, вместо команды для просмотра списка всех виртуальных машин, воспользуйтесь подкомандой showvminfo. Например, вы можете запустить команду ниже, чтобы получить подробную информацию о виртуальной машине Windows11, включая информацию о ее аппаратном оборудовании и других сведений о конфигурации, состояния сети и т.д.
vboxmanage showvminfo Windows11
4. Создание виртуальной машины
Еще одной важной задачей при управлении виртуальными машинами является создание новых виртуальных машин. Воспользуйтесь подкомандой createavm для создания новой виртуальной машины. Например, чтобы создать виртуальную машину с именем «DebianVM», которая будет работать в операционной системе Debian Linux, вы можете выполнить следующую команду:
vboxmanage createvm --name DebianVM --ostype Debian Debian_64 --register
Если вы не уверены, какое имя операционной системы использовать на вашей виртуальной машине, вы можете проверить, какие операционные системы поддерживает VirtualBox с помощью следующей команды:
vboxmanage list ostypes
5. Изменение виртуальной машины
Если вы хотите изменить только что созданную виртуальную машину, например, изменить размер памяти, имя и другие соответствующие параметры, вы можете воспользоваться подкомандой modifyvm, за которой следует имя виртуальной машины, а затем параметр, который вы хотите изменить, и, наконец, новое значение этого параметра.
Предположим, вы хотите изменить имя только что созданной виртуальной машины выше с DebianVM на Debian9, используя настройку имени.
vboxmanage modifyvm DebianVM --name Debian9
Список настроек, которые вы можете изменить, можно посмотреть, выполнив команду:
vboxmanage modifyvm
6. Резервное копирование
Резервное копирование является важным компонентом поддержания надежности информационной системы. VirtualBox позволяет сохранять состояние вашей виртуальной машины, чтобы у вас была возможность ее сохранить, если вдруг что-то пойдет не так.
Чтобы сделать снимок состояния виртуальной машины, вы можете запустить следующую команду, где «Christmas eve snapshot» - это имя, присвоенное вашему снимку состояния виртуальной машины.
vboxmanage snapshot Windows11 take "Christmas eve snapshot"
Чтобы восстановить упомянутую выше виртуальную машину с помощью только что созданного снимка состояния, для начала остановите виртуальную машину, если она запущена, а затем восстановите снимок состояния с помощью следующей команды:
vboxmanage snapshot Windows11 restore "Christmas eve snapshot"
7. Получение справочной информации
Чтобы вы могли использовать интерфейс командной строки VBoxManage на максимум, вы должны 7-komand-virtualnoj-mashiny-virtualbox-kotorye-nuzhno-znat, как получить справочную информацию или прочитать документацию из терминала командной строки, чтобы не запоминать все команды. Кроме того, есть множество других команд, которые не были рассмотрены нами в этом руководстве. У7-komand-virtualnoj-mashiny-virtualbox-kotorye-nuzhno-znat больше о командах VBoxManage и их параметрах можно, выполнив следующую команду:
vboxmanage
Заключение
В данном руководстве мы изучили некоторые важные команды для управления вашими виртуальными машинами VirtualBox с помощью VBoxManage - мощного и легкого инструмента командной строки для управления вашими виртуальными машинами. Кроме того, вы можете легко создавать сценарии автоматизации на основе VBoxManage, чтобы легко управлять своими виртуальными машинами.
Виртуальные машины дают возможность запускать и экспериментировать с несколькими операционными системами на вашем ПК безопасным и надежным способом.
![img](/static/images/general/icons/networks_how-to.png)
Router-on-a-stick (роутер на палочке) - это термин, часто используемый для описания схемы, состоящей из маршрутизатора и коммутатора, которые соединены с использованием одного канала Ethernet, настроенного как 802.1Q транк. Стандарт 802.1Q используется для тегирования трафика, для передачи информации о принадлежности к VLAN. В этой схеме на коммутаторе настроено несколько VLAN и маршрутизатор выполняет всю маршрутизацию между различными сетями или VLAN (Inter-VLAN routing).
/p>
Хотя некоторые считают, что термин «маршрутизатор на палочке» звучит немного глупо, это очень популярный термин, который широко используется в сетях, где нет коммутатора 3-го уровня.
Также такую схему иногда называют “леденец” – lollypop. Находите некоторое сходство?
Пример
Наш пример основан на сценарии, с которым вы, скорее всего, столкнетесь при работе с сетями VoIP. Поскольку реализации VoIP требуют разделения сети передачи данных и сети голоса для маршрутизации пакетов между ними, вам необходим либо коммутатор 3-го уровня, либо маршрутизатор. Эта конфигурация обеспечивает доступность и стабильность VoIP, особенно в часы пик трафика в вашей сети.
Пакеты, передающиеся между VLAN маршрутизируются через один роутер, подключенный к коммутатору, используя один физический порт, настроенный как транк на обоих концах (коммутатор и маршрутизатор).
Этот пример покажет вам, как настроить маршрутизатор и коммутатор Cisco для создания между ними 802.1Q транка и маршрутизации пакетов между вашими VLAN.
Шаг 1 – Настройка коммутатора
Первым шагом является создание необходимых двух VLAN на нашем коммутаторе Cisco и настройка их с IP-адресом. Поскольку все коммутаторы Cisco содержат VLAN1 (VLAN по умолчанию), нам нужно только создать VLAN2.
Switch# configure terminal
Switch(config)# vlan2
Switch(config-vlan)# name voice
Switch(config-vlan)# exit
Switch(config)# interface vlan1
Switch(config-if)# ip address 192.168.10.2 255.255.255.0
Switch(config-if)# exit
Switch(config)# interface vlan2
Switch(config-if)# ip address 192.168.20.2 255.255.255.0
Switch(config-if)# exit
Далее, нам нужно создать транк порт, который будет соединятся с маршрутизатором. Для этой цели мы выберем порт GigabitEthernet 0/1
Switch# configure terminal
Switch(config)# interface gigabitethernet 0/1
Switch(config-if)# switchport trunk encapsulation dot1q
Switch(config-if)# switchport mode trunk
Switch(config-if)# spanning-tree portfast trunk
При помощи данных команд мы определили, что транк будет использовать инкапсуляцию 802.1Q, установили порт в режим транка и включили функцию portfast trunk spanning-tree, чтобы гарантировать, что порт будет пересылать пакеты немедленно при подключении к устройству, например, маршрутизатору. Внимание: команда spanning-tree portfast trunk не должна использоваться на портах, которые подключаются к другому коммутатору, чтобы избежать петель в сети.
Шаг 2 – Настройка маршрутизатора
Мы закончили с коммутатором и можем переходить к настройке конфигурации нашего маршрутизатора, чтобы обеспечить связь с нашим коммутатором и позволить всему трафику VLAN проходить и маршрутизироваться по мере необходимости.
Создание транка на порте маршрутизатора не сильно отличается от процесса, описанного выше - хотя мы транк на одном физическом интерфейсе, мы должны создать под-интерфейс (sub-interface) для каждого VLAN.
Router# configure terminal
Router(config)# interface gigabitethernet0/1
Router(config-if)# no ip address
Router(config-if)# duplex auto
Router(config-if)# speed auto
Router(config-if)# interface gigabitethernet0/1.1
Router(config-subif)# encapsulation dot1q 1 native
Router(config-subif)# ip address 192.168.10.1 255.255.255.0
Router(config-subif)# interface gigabitethernet0/1.2
Router(config-subif)# encapsulation dot1q 2
Router(config-subif)# ip address 192.168.20.1 255.255.255.0
Чтобы сформировать транк с нашим коммутатором, необходимо создать один под-интерфейс для каждого VLAN, сконфигурированного на нашем коммутаторе. После создания под-интерфейса мы назначаем ему IP-адрес и устанавливаем тип инкапсуляции 802.1Q и указываем номер VLAN, к которому принадлежит под-интерфейс.
Например, команда encapsulation dot1q 2 определяет инкапсуляцию 802.1Q и устанавливает под-интерфейс на VLAN 2.
Параметр native который мы использовали для под-интерфейса gigabitethernet0/1.1, сообщает маршрутизатору, что нативный vlan - это VLAN 1. Это параметр по умолчанию на каждом коммутаторе Cisco и поэтому должен совпадать с маршрутизатором.
Для проверки можно использовать на роутере команду show vlans, где будут отображены созданные нами под-интерфейсы, а также при помощи команды show ip route в таблице маршрутизации мы должны увидеть наши под-интерфейсы.
Готово! Теперь при помощи роутера мы можем маршрутизировать файлы между разными VLAN.
![img](/static/images/general/icons/devops_useful.png)
Docker - это система контейнеризации, которая позволяет упаковывать и запускать приложение вместе со всеми его зависимостями внутри контейнера. Когда вы работаете с Docker, вы должны знать некоторые команды. Эта статья всецело посвящена именно этому.
1. Поиск версии
Одна из первых вещей, которую вам нужно знать, это то, как найти версию Docker, установленного на вашем компьютере.
geekflare@geekflare:/home/geekflare$ docker --version
Docker version 18.09.6, build 481bc77
2. Загрузка образа
Допустим, что вы хотите получить образ Docker из Dockerhub (репозиторий Docker). На следующем примере мы показали, как можно извлечь образ HTTP-сервера Apache.
geekflare@geekflare:/home/geekflare$ docker pull httpd
Using default tag: latest
latest: Pulling from library/httpd
f5d23c7fed46: Pull complete
b083c5fd185b: Pull complete
bf5100a89e78: Pull complete
98f47fcaa52f: Pull complete
622a9dd8cfed: Pull complete
Digest: sha256:8bd76c050761610773b484e411612a31f299dbf7273763103edbda82acd73642
Status: Downloaded newer image for httpd:latest
geekflare@geekflare:/home/geekflare$
3. Образы
Вы можете получить список всех образов Docker, загруженных в систему, с такой информацией, как тег/идентификатор образа/размер и т.д.
geekflare@geekflare:/home/geekflare$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest ee39f68eb241 2 days ago 154MB
hello-world latest fce289e99eb9 6 months ago 1.84kB
sequenceiq 2.7 789fa0a3b911 4 years ago 1.76GB
/hadoop-docker
4. Запуск
Вы можете запустить образ Docker, на который вы ссылаетесь в команде. Эта команда создаст контейнер Docker, в которой запуститься HTTP-сервер Apache.
geekflare@geekflare:/home/geekflare$ docker run -it -d httpd
09ca6feb6efc0578951a3e2557ed5855b2edda39a795d9703eb54d975930fe6e
5. Какие контейнеры запущены?
Команда
ps
перечисляет все контейнеры Docker, которые запущены, со всеми сопутствующими сведениями о них.
geekflare@geekflare:/home/geekflare$ docker ps
CONTAINER ID IMAGE COMMAND CREATED
09ca6feb6efc httpd "httpd-foreground" 36 seconds ago
STATUS PORTS NAMES
Up 33 seconds 80/tcp suspicious_bell
Как вы можете видеть, в этом контейнере Docker запущен сервер Apache.
6. ps –a
Перечисляет все контейнеры Docker, которые были запушены, из которых вы вышли или которые вы остановили, со всеми сопутствующими сведениями о них.
geekflare@geekflare:/home/geekflare$ docker ps -a
CONTAINER ID IMAGE COMMAND
09ca6feb6efc httpd "httpd-foreground"
2f6fb3381078 sequenceiq/hadoop-docker:2.7.0 "/etc/bootstrap.sh -d"
9f397feb3a46 sequenceiq/hadoop-docker:2.7.0 "/etc/bootstrap.sh -…"
9b6343d3b5a0 hello-world "/hello"
CREATED STATUS PORTS NAMES
51 seconds ago Up 49 seconds 80/tcp suspicious_bell
2 weeks ago Exited (137) 9 days quizzical_raman
2 weeks ago Exited (255) 2 weeks ago 2122/tcp, determined_ritchie
8030-8033/tcp,
8040/tcp,
8042/tcp,
8088/tcp,
19888/tcp,
49707/tcp,
50010/tcp,
50020/tcp,
50070/tcp,
50075/tcp,
50090/tcp
2 weeks ago Exited (0) 2 weeks ago peaceful_mclean
7. exec
Вы можете получить доступ к контейнеру Docker и запустить команды внутри этого контейнера. В данном примере я пытаюсь получить доступ к контейнеру сервера Apache.
Для того, чтобы выйти из контейнера, введите
exit
и нажмите
Enter
.
geekflare@geekflare:/home/geekflare$ docker exec -it 09ca6feb6efc bash
root@09ca6feb6efc:/usr/local/apache2# ls
bin build cgi-bin conf error htdocs icons include logs modules
root@09ca6feb6efc:/usr/local/apache2#
8. Удаление контейнера
Вы можете удалить контейнер Docker, указав идентификатор контейнера в команде.
geekflare@geekflare:/home/geekflare$ docker rm 9b6343d3b5a0
9b6343d3b5a0
Запустите следующую команду для того, чтобы проверить, был ли удален контейнер.
geekflare@geekflare:/home/geekflare$ docker ps -a
CONTAINER ID IMAGE COMMAND
09ca6feb6efc httpd "httpd-foreground"
2f6fb3381078 sequenceiq/hadoop-docker:2.7.0 "/etc/bootstrap.sh -d"
9f397feb3a46 sequenceiq/hadoop-docker:2.7.0 "/etc/bootstrap.sh -…"
CREATED STATUS PORTS NAMES
About a minute ago Up About a minute 80/tcp suspicious_bell
2 weeks ago Exited (137) 9 days ago quizzical_raman
2 weeks ago Exited (255) 2 weeks ago 2122/tcp, determined_ritchie
8030-8033/tcp,
8040/tcp,
8042/tcp,
8088/tcp,
19888/tcp,
49707/tcp,
50010/tcp,
50020/tcp,
50070/tcp,
50075/tcp,
50090/tcp
9. Удаление образа
Вы можете удалить образ Docker, указав идентификатор образа в команде.
geekflare@geekflare:/home/geekflare$ docker rmi fce289e99eb9
Untagged: hello-world:latest
Untagged: hello-world@sha256:41a65640635299bab090f783209c1e3a3f11934cf7756b09cb2f1e02147c6ed8
Deleted: sha256:fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e
Deleted: sha256:af0b15c8625bb1938f1d7b17081031f649fd14e6b233688eea3c5483994a66a3
geekflare@geekflare:/home/geekflare$
10. Перезапуск контейнера
Вы можете перезапустить контейнер Docker, указав идентификатор контейнера в команде.
geekflare@geekflare:/home/geekflare$ docker restart 09ca6feb6efc
09ca6feb6efc
Запустите следующую команду и проверьте параметр STATUS для того, чтобы убедиться, что контейнер был запущен должным образом.
geekflare@geekflare:/home/geekflare$ docker ps
CONTAINER ID IMAGE COMMAND CREATED 09ca6feb6efc httpd "httpd-foreground" 6 minutes ago
STATUS PORTS NAMES
Up 9 seconds 80/tcp suspicious_bell
11. Остановка контейнера
Вы можете остановить контейнер Docker, указав идентификатор контейнера в команде.
geekflare@geekflare:/home/geekflare$ docker stop 09ca6feb6efc
09ca6feb6efc
Запустите следующую команду для того, чтобы проверить, контейнер все еще работает или был остановлен.
geekflare@geekflare:/home/geekflare$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
12. Запуск контейнера
Эта команда запускает контейнер Docker, идентификатор которого был указан в ней.
geekflare@geekflare:/home/geekflare$ docker start 09ca6feb6efc
09ca6feb6efc
Запустите следующую команду для того, чтобы проверить, запустился ли контейнер.
geekflare@geekflare:/home/geekflare$ docker ps
CONTAINER ID IMAGE COMMAND CREATED
09ca6feb6efc httpd "httpd-foreground" 8 minutes ago
STATUS PORTS NAMES
Up 3 seconds 80/tcp suspicious_bell
13. Уничтожение контейнера
Эта команда моментально прекращает работу контейнера, а команда stop останавливает работу контейнера корректно – в этом и есть разница между командами kill и stop.
geekflare@geekflare:/home/geekflare$ docker kill 09ca6feb6efc
09ca6feb6efc
Запустите следующую команды для того, чтобы убедиться, что контейнер был уничтожен.
geekflare@geekflare:/home/geekflare$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
14. Фиксация изменений
Вы можете сохранить новый образ Docker в локальной системе, указав идентификатор контейнера в команде. В примере ниже geekflare – это имя пользователя, а httpd_image – это имя образа.
geekflare@geekflare:/home/geekflare$ docker commit 09ca6feb6efc geekflare/httpd_image
sha256:d1933506f4c1686ab1a1ec601b1a03a17b41decbc21d8acd893db090a09bb31c
15. Вход в систему
Вы можете войти в систему Dockerhub. Перед входом в систему у вас запросят учетные данные.
geekflare@geekflare:/home/geekflare$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: geekflare
Password:
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
16. Добавление образа
Вы можете загрузить образ Docker в Dockerhub, указав имя образа в команде.
geekflare@geekflare:/home/geekflare$ docker push geekflare/httpd_image
The push refers to repository [docker.io/geekflare/httpd_image]
734d9104a6a2: Pushed
635721fc6973: Mounted from library/httpd
bea448567d6c: Mounted from library/httpd
bfaa5f9c3b51: Mounted from library/httpd
9d542ac296cc: Mounted from library/httpd
d8a33133e477: Mounted from library/httpd
latest: digest: sha256:3904662761df9d76ef04ddfa5cfab764b85e3eedaf10071cfbe2bf77254679ac size: 1574
17. Сеть Docker
С помощью следующей команды вы можете получить всю сетевую информацию в рамках кластера.
geekflare@geekflare:/home/geekflare$ docker network ls
NETWORK ID NAME DRIVER SCOPE
85083e766f04 bridge bridge local
f51d1f3379e0 host host local
5e5d9a192c00 none null local
Кроме того, есть несколько других команд, связанных с сетью Docker.
geekflare@geekflare:/home/geekflare$ docker network
Usage: docker network COMMAND
Manage networks
Commands:
connect Connect a container to a network
create Create a network
disconnect Disconnect a container from a network
inspect Display detailed information on one or more networks
ls List networks
prune Remove all unused networks
rm Remove one or more networks
Run 'docker network COMMAND --help' for more information on a command.
18. Информация о Docker
Вы можете получить подробную информацию о Docker, который установлен в вашей системе, в том числе версию ядра, количество контейнеров и образов и т.д.
geekflare@geekflare:/home/geekflare$ docker info
Containers: 3
Running: 1
Paused: 0
Stopped: 2
Images: 3
Server Version: 18.09.6
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30
init version: fec3683
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.18.0-25-generic
Operating System: Ubuntu 18.10
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 4.982GiB
Name: geekflare
ID: RBCP:YGAP:QG6H:B6XH:JCT2:DTI5:AYJA:M44Z:ETRP:6TO6:OPAY:KLNJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: geekflare
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
19. Копирование файла
Вы можете скопировать файл из контейнера Docker в локальную систему.
В данном примере я копирую файл http.pid, который расположен внутри контейнера с идентификатором 09ca6feb6efc, в /home/geekflare/.
geekflare@geekflare:/home/geekflare$ sudo docker cp 09ca6feb6efc:/usr/local/apache2/logs/httpd.pid /home/geekflare/
[sudo] password for geekflare:
Запустите следующую команду для того, чтобы убедиться, что файл был скопирован.
geekflare@geekflare:/home/geekflare$ ls
Desktop Documents example examples.desktop httpd.pid nginx_new.yml nginx.yml
20. Проверка истории
Можно просмотреть историю образа Docker, указав его имя в команде.
geekflare@geekflare:/home/geekflare$ docker history httpd
IMAGE CREATED CREATED BY
ee39f68eb241 2 days ago /bin/sh -c #(nop) CMD ["httpd-
foreground"]
2 days ago /bin/sh -c #(nop) EXPOSE 80
2 days ago /bin/sh -c #(nop) COPY
file:c432ff61c4993ecd…
4 days ago /bin/sh -c set -eux;
savedAptMark="$(apt-m…
4 days ago /bin/sh -c #(nop) ENV HTTPD_PATCHES=
4 days ago /bin/sh -c #(nop) ENV
HTTPD_SHA256=b4ca9d05…
4 days ago /bin/sh -c #(nop) ENV
HTTPD_VERSION=2.4.39
4 days ago /bin/sh -c set -eux; apt-get update;
apt-g…
4 days ago /bin/sh -c #(nop) WORKDIR
/usr/local/apache2
4 days ago /bin/sh -c mkdir -p "$HTTPD_PREFIX"
&& chow…
4 days ago /bin/sh -c #(nop) ENV
PATH=/usr/local/apach…
4 days ago /bin/sh -c #(nop) ENV
HTTPD_PREFIX=/usr/loc…
5 days ago /bin/sh -c #(nop) CMD ["bash"]
5 days ago /bin/sh -c #(nop) ADD
file:71ac26257198ecf6a…
SIZE COMMENT
0B
0B
138B
49.1B
0B
0B
0B
35.4B
0B
0B
0B
0B
0B
69.2B
21. Проверка журналов
Можно просмотреть журналы контейнера Docker, указав идентификатор контейнера в команде.
geekflare@geekflare:/home/geekflare$ docker logs 09ca6feb6efc
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Mon Jul 15 14:01:55.400472 2019] [mpm_event:notice] [pid 1:tid 140299791516800] AH00489: Apache/2.4.39 (Unix) configured -- resuming normal operations
[Mon Jul 15 14:01:55.400615 2019] [core:notice] [pid 1:tid 140299791516800] AH00094: Command line: 'httpd -D FOREGROUND'
[Mon Jul 15 14:08:36.798229 2019] [mpm_event:notice] [pid 1:tid 140299791516800] AH00491: caught SIGTERM, shutting down
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Mon Jul 15 14:08:38.259870 2019] [mpm_event:notice] [pid 1:tid 139974087980160] AH00489: Apache/2.4.39 (Unix) configured -- resuming normal operations
[Mon Jul 15 14:08:38.260007 2019] [core:notice] [pid 1:tid 139974087980160] AH00094: Command line: 'httpd -D FOREGROUND'
[Mon Jul 15 14:09:01.540647 2019] [mpm_event:notice] [pid 1:tid 139974087980160] AH00491: caught SIGTERM, shutting down
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Mon Jul 15 14:10:43.782606 2019] [mpm_event:notice] [pid 1:tid 140281554879616] AH00489: Apache/2.4.39 (Unix) configured -- resuming normal operations
[Mon Jul 15 14:10:43.782737 2019] [core:notice] [pid 1:tid 140281554879616] AH00094: Command line: 'httpd -D FOREGROUND'
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Mon Jul 15 14:14:08.270906 2019] [mpm_event:notice] [pid 1:tid 140595254346880] AH00489: Apache/2.4.39 (Unix) configured -- resuming normal operations
[Mon Jul 15 14:14:08.272628 2019] [core:notice] [pid 1:tid 140595254346880] AH00094: Command line: 'httpd -D FOREGROUND'
22. Поиск образа
Вы можете найти образ Docker в Dockerhub, указав его имя в команде.
geekflare@geekflare:/home/geekflare$ docker search hadoop
NAME DESCRIPTION
sequenceiq/hadoop-docker An easy way to try Hadoop
uhopper/hadoop Base Hadoop image with dynamic
configuration…
harisekhon/hadoop Apache Hadoop (HDFS + Yarn, tags 2.2 - 2.8)
bde2020/hadoop-namenode Hadoop namenode of a hadoop cluster
kiwenlau/hadoop Run Hadoop Cluster in Docker Containers
izone/hadoop Hadoop 2.8.5 Ecosystem fully distributed,
Ju…
uhopper/hadoop-namenode Hadoop namenode
bde2020/hadoop-datanode Hadoop datanode of a hadoop cluster
singularities/hadoop Apache Hadoop
uhopper/hadoop-datanode Hadoop datanode
harisekhon/hadoop-dev Apache Hadoop (HDFS + Yarn) + Dev Tools +
Gi…
STARS OFFICIAL AUTOMATED
611 [OK]
98 [OK]
54 [OK]
22 [OK]
19 [OK]
14 [OK]
9 [OK]
9 [OK]
8 [OK]
7 [OK]
6 [OK]
23. Обновление конфигурации
Вы можете обновить конфигурацию контейнера. Ниже представлены все параметры обновления.
geekflare@geekflare:/home/geekflare$ docker update --help
Usage: docker update [OPTIONS] CONTAINER [CONTAINER...]
Update configuration of one or more containers
Options:
--blkio-weight uint16 Block IO (relative weight), between 10 and 1000, or 0 to disable
(default 0)
--cpu-period int Limit CPU CFS (Completely Fair Scheduler) period
--cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota
--cpu-rt-period int Limit the CPU real-time period in microseconds
--cpu-rt-runtime int Limit the CPU real-time runtime in microseconds
-c, --cpu-shares int CPU shares (relative weight)
--cpus decimal Number of CPUs
--cpuset-cpus string CPUs in which to allow execution (0-3, 0,1)
--cpuset-mems string MEMs in which to allow execution (0-3, 0,1)
--kernel-memory bytes Kernel memory limit
-m, --memory bytes Memory limit
--memory-reservation bytes Memory soft limit
--memory-swap bytes Swap limit equal to memory plus swap: '-1' to enable unlimited swap
--restart string Restart policy to apply when a container exits
Запустите следующую команду для того, чтобы обновить конфигурацию ЦП контейнера Docker, указав его идентификатор в команде.
geekflare@geekflare:/home/geekflare$ docker update -c 1 2f6fb3381078
2f6fb3381078
24. Создание тома
Вы можете создать том, который контейнер Docker будет использовать в качестве хранилища данных.
geekflare@geekflare:/home/geekflare$ docker volume create
7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0
Запустите следующую команду для того, чтобы убедиться, что том был создан.
geekflare@geekflare:/home/geekflare$ docker volume ls
DRIVER VOLUME NAME
local 7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0
25. Установка плагина
Вы можете установить плагин Docker vieux/sshfs, установив параметр среды отладки на 1.
geekflare@geekflare:/home/geekflare$ docker plugin install vieux/sshfs DEBUG=1
Plugin "vieux/sshfs" is requesting the following privileges:
- network: [host]
- mount: [/var/lib/docker/plugins/]
- mount: []
- device: [/dev/fuse]
- capabilities: [CAP_SYS_ADMIN]
Do you grant the above permissions? [y/N] y
latest: Pulling from vieux/sshfs
52d435ada6a4: Download complete
Digest: sha256:1d3c3e42c12138da5ef7873b97f7f32cf99fb6edde75fa4f0bcf9ed277855811
Status: Downloaded newer image for vieux/sshfs:latest
Installed plugin vieux/sshfs
Run the below command to list the docker plugins.
geekflare@geekflare:/home/geekflare$ docker plugin ls
ID NAME DESCRIPTION ENABLED
2a32d1fb95af vieux/sshfs:latest sshFS plugin for Docker true
26. Выход из системы
Вы можете выйти из системы Dockerhub.
geekflare@geekflare:/home/geekflare$ docker logout
Removing login credentials for https://index.docker.io/v1/
Заключение
Надеюсь, что в настоящему моменту вы достаточно хорошо поняли, что из себя представляют команды Docker. Испробуйте эти команды в своей среде разработки или тестовой среде для того, чтобы вы могли отточить свои навыки и лучше понять, как они работают.