Skip to content

Latest commit

 

History

History
180 lines (127 loc) · 7.6 KB

README.md

File metadata and controls

180 lines (127 loc) · 7.6 KB

Контейнер docker

Чтобы запустить контейнер docker нужно выполнить команду в терминале

//запуск контейнера
docker run $Имяконтейнера

//пример "hello-world"
docker run hello-world

Мы запустим контейнер который скачает контейнер и выведет нам приветсвие Hello world! Ниже данные которые выведет контейнер.

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete 
Digest: sha256:7d91b69e04a9029b99f3585aaaccae2baa80bcf318f4a5d2165a9898cd2dc0a1
Status: Downloaded newer image for hello-world:latest
 
Hello from Docker!
This message shows that your installation appears to be working correctly.
 
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.
 
To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash
 
Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/
 
For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Для скачивания контейнера применяется команда

docker pull $name-container

Для запуска контейнера применяется команда "docker run -i -t name-container" разберем команду

"-i" - позволяети нам видеть в терминале что будет происходить в контейнере

"-t" - позволяет нам работать с командной строкой контейнера

"bash" - это команда которая запуститься сразу при запуске контейнера

docker run -i -t $name-container bash

Выходим из контейнера командой "exit"

exit

Список контейнеров

После того как мы вышли из контейнера контейнер никуда не делся из нашей машины он просто остановлен.

Выводим список контейнеров на машине (выводит только работающие контейнеры)

docker container ls

Выводим список контейнеров на машине выводит все контейнеры независимо от состояния

docker container ls -a

Удаляет контейнер, удалить можно как по айди так и по имени ниже на изображении пример

docker container rm $name-container
docker container rm $id-container

Важно при удалении контейнера удаляется вся информация которую содержит контейнер!!!

Иногда нам необходимо запустить контейнер без необходимости ввода команд например запустить БД или сервер используем команду deattach

docker container -it -d $name-container bash

Чтобы подключиться к запущенному контейнеру используем команду attach

docker container attach $id-container

Иногда выполнив необходимые команды нам нужно выйти из контейнера не закрывая его Для этого используем комбинации клавиш (также для Mac)

Ctrl + P
Ctrl + Q

Для остановки контейнера можно использовать как айди так и имя выполняем команду

docker container stop $name-container

Также нам может понадобиться удалить все контейнеры

docker container prune

Для запуска с определенным именем "--name" и с возможностью последующего удалениея контейнера "--rm" нужно использовать команду

docker run -it --name ubuntu_1 --rm ubuntu bash

В нашем примере в разных терминалах на одной машине мы запустили с разными именами два контейнера они не взаимосвязанны как видите в одном создали файл а вдругом его не видно. Также после выхода из контейнера он удаляется

Есть еще одна альтернативная команда для просмотра состояния контейнеров

docker ps -a


Монтируем к контейнеру папку с ресурсами или том

Часто необходимо подключить к контейнеру папку с ресурсами это делается при помощи команды "--mount", на изрбражении ниже мы видим папку для монтированния и в ней 3 файла. При подключении контейнера монтируется папка с именем "bind" и в ней мы также видим 3 файла а также выводим содержимое одного из файлов. В последующем меняем содержимое файла локально и оно меняется в контейнере.

//запуск контейнера с монтированнием директории
docker run -it ---mount type=bind,src=/full_path_to_your_directory,target=/bind/ ubuntu bash

//просмотр содержимого файла в директории
cat bind/simple.txt

Также мы можем создать том "volume" он представляется для нас наподобие диска и мы можем его подключить к нашему контейнеру. В отличие от папки мы не имеем прямого доступа локально к самому том, на нем можно хранить информацию

команды для работы с "volume"

//запуск контейнера с подключением тома
docker run -it ---mount type=volume,src=my_volume,target=/volume/ ubuntu bash

//создание тома
docker volume create $name_volume
//просмотр детальной информации о томе
docker volume inspect $name_volume
//просмотреть список томов
docker volume ls
//удалить все локальные тома
docker volume prune
//удалить отдельный том
docker volume rm $name_volume

Вернуться в главное меню