Тестовый запуск:
$ docker run -d -p 8000:80 docker/getting-started
docker/getting-started - имя docker image в хранилище Docker.
8000 - порт для доступа снаружи
80 - порт внутри docker
-p 8000:80 - запросы снаружи на порт 8000 перенаправляются на 80 порт программы внутри docker
-d - detach режим запуска. После запуска будет возврат в основную ОС. Но образ будет работать внутри Docker.
Будет доступен ресурс в браузере: http://127.0.0.1:8000/tutorial/.
Список контейнеров:
$ docker container ls
Список images:
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE shop_kotlin/app latest 99bbff0559f6 7 hours ago 715MB portainer/portainer-ce latest 3c6403908069 2 weeks ago 302MB v/vacancy_backend latest 4741ff41a056 5 weeks ago 460MB byrnedo/alpine-curl latest 5068d051b520 5 weeks ago 13.2MB vacancy_backend/app latest 12a5ab953bfe 5 weeks ago 460MB blackvoidclub/midnight-commander latest 2df3150fad65 8 weeks ago 21.9MB eclipse-temurin 11 9ddc615e14e7 2 months ago 401MB postgres 15-alpine fc9156a9e8b8 3 months ago 243MB postgres 14 d4a3e64ed8ed 3 months ago 422MB
Запуск image shop_kotlin/app по имени:
$ docker run -it shop_kotlin/app
Запуск image shop_kotlin/app по номеру:
$ docker run -it 99bb
Удаление image по имени:
$ docker rmi ubuntu
Удаление всех остановленных контейнеров:
$ docker rm $(docker ps -q -a)
(Перед удалением image нужно остановить и удалить все контейнеры, использующие image)
Удаление container по id:
$ docker rm container 3e1
Удаление всех image:
$ docker image prune -a
Информация о сетях:
$ docker network ls NETWORK ID NAME DRIVER SCOPE eceed310493a bridge bridge local 089bec5b4996 host host local 67e9fd578a45 kafka-cluster_default bridge local 92d87ecb6bc2 none null local
bridge - сеть, создаваемая Docker когда запускаетя команда docker run ...
$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bf9f3655ac19 shop_kotlin:0.24.0924.1 "/cnb/process/web" 3 hours ago Up 3 hours shop_kotlin_container 21dacf5c4200 portainer/portainer-ce:latest "/portainer" 3 hours ago Up 3 hours 0.0.0.0:8000->8000/tcp, 0.0.0.0:9443->9443/tcp, 9000/tcp portainer $ docker exec bf9f3655ac19 cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.3 bf9f3655ac19 $ docker exec -it bf9 /bin/bash cnb@bf9f3655ac19:/$
Вход под root:
docker exec -it -u 0 bf9 /bin/bash
Запуск midnight-commander в docker: https://www.blackvoid.club/midnight-commander-via-docker/
$ docker pull blackvoidclub/midnight-commander $ docker run -it --name=mc -v /:/mnt/host blackvoidclub/midnight-commander
Хостовая файловая система в docker будет по пути /mnt/host.
Остановка и удаление docker container:
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ad43dbd0f4e6 blackvoidclub/midnight-commander "mc ./mc" 7 minutes ago Exited (0) 6 minutes ago $ docker stop ad43 $ docker rm ad43
( docker stop docker rm ) Запуск и подключениие к остановленному container:
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 46666f46d8f8 blackvoidclub/midnight-commander "mc ./mc" About a minute ago Exited (0) 5 seconds ago mc $ docker container start 4666 $ docker container attach 4666
откроется окно с запущенным mc. Файловая система хостовой машины будет по пути /mnt/host. Переподключение:
$ docker container start 4666 $ docker container attach 4666
Еще пример с Midnight Commander:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8d42d57327b4 kalaksi/midnight-commander:latest "/bin/sh -c 'set -eu…" 2 minutes ago Up About a minute mc
$ docker exec -t -i 8d4 mc
Есть UI для управления docker https://www.portainer.io/. Запуск:
$ docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Доступ: https://127.0.0.1:9443/#!/home
Ссылки:
https://habr.com/ru/companies/flant/articles/336654/