Начало работы
Начало работы
Создание и запуск контейнера в фоновом режиме
Шелл-скрипт $ docker run -d -p 80:80 docker/getting-started
----
- `-d` - Запуск контейнера в отсоединенном режиме
- `-p 80:80` - Сопоставить порт 80 с портом 80 в контейнере
- `docker/getting-started` - Образ для использования
{.marker-none}
Создание и запуск контейнера на переднем плане
``Шелл-скрипт
$ docker run -it -p 8001:8080 --name my-nginx nginx
-it
- Интерактивный режим bash-p 8001:8080
- Сопоставить порт 8001 с портом 8080 в контейнере--name my-nginx
- Указать имяnginx
- Используемый образ {.marker-none}
Общие команды
Пример | Описание |
---|---|
docker ps |
Список запущенных контейнеров |
docker ps -a |
Список всех контейнеров |
docker ps -s |
Список запущенных контейнеров(с CPU / памятью) |
docker images |
Список всех изображений |
docker exec -it <container> bash |
Подключение к контейнеру |
docker logs <container> |
Показывает консольный журнал контейнера |
docker stop <container> |
Остановить контейнер |
docker restart <container> |
Перезапустить контейнер |
docker rm <container> |
Удалить контейнер |
docker port <container> |
Показывает сопоставление портов контейнера |
docker top <container> |
Список процессов |
docker kill <container> |
Убить контейнер |
Параметр <контейнер>
может быть идентификатором или именем контейнера
Контейнеры Docker
Запуск и остановка
Описание | Пример |
---|---|
docker start my-nginx |
Запуск |
docker stop my-nginx |
Остановка |
docker restart my-nginx |
Перезапуск |
docker pause my-nginx |
Пауза |
docker unpause my-nginx |
Снять паузу |
docker wait my-nginx |
Блокирование контейнера |
docker kill my-nginx |
Отправка сообщения SIGKILL |
docker attach my-nginx |
Подключение к существующему контейнеру |
Информация
Пример | Описание |
---|---|
docker ps |
Список запущенных контейнеров |
docker ps -a |
Список всех контейнеров |
docker logs my-nginx |
Журналы контейнеров |
docker inspect my-nginx |
Проверка контейнеров |
docker events my-nginx |
События контейнеров |
docker port my-nginx |
Публичные порты |
docker top my-nginx |
Запущенные процессы |
docker stats my-nginx |
Использование ресурсов контейнера |
docker diff my-nginx |
Список изменений, внесенных в контейнер. |
Создание
``yaml
docker create [options] IMAGE
-a, –attach # присоединить stdout/err
-i, –interactive # присоединить stdin (интерактивный)
-t, –tty # псевдо-tty
–name NAME # дать имя вашему изображению
-p, –publish 5000:5000 # карта портов (хост:контейнер)
–expose 5432 # открыть порт для контейнеров
-P, –publish-all # опубликовать все порты
–link container:alias # связывание
-v, –volume pwd
:/app # монтирование (необходимы абсолютные пути)
-e, –env NAME=hello # env vars
#### Пример
сценарий оболочки
$ docker create --name my_redis --expose 6379 redis:3.0.2
Манипулирование
Переименование контейнера ``Сценарий командной строки docker rename my-nginx my-nginx
Удаление контейнера
Шелл-скрипт
docker rm my-nginx
Обновление контейнера сценарий docker update –cpu-shares 512 -m 300M my-nginx
Образы Docker {.cols-2}
------
### Манипулирование
| `Example` | Description |
|------------------------------------|---------------------------------|
| `docker images` | Listing images |
| `docker rmi nginx` | Удаление изображения |
| `docker load < ubuntu.tar.gz` | Загрузка репозитория в tar-архиве |
| `docker load --input ubuntu.tar` | Загрузка репозитория в tar-архиве |
| `docker save busybox > ubuntu.tar` | Сохранение изображения в tar-архиве |
| `docker history` | Отображение истории образа |
| `docker commit nginx` | Сохранение контейнера в виде образа. |
| `docker tag nginx eon01/nginx` | Пометить образ |
| `docker push eon01/nginx` | Размещение образа |
### Создание образов
Шелл-скрипт
$ docker build .
$ docker build github.com/creack/docker-firefox
$ docker build - < Dockerfile
$ docker build - < context.tar.gz
$ docker build -t eon/my-nginx .
$ docker build -f myOtherDockerfile .
$ curl example.com/remote/Dockerfile | docker build -f - .
Docker Networking
Манипулирование
Удаление сети Шелл-скрипт docker network rm MyOverlayNetwork
Вывод сетей в список
сценарий командной строки
docker network ls
Получение информации о сети
docker network inspect MyOverlayNetwork
Подключение запущенного контейнера к сети ``Шелл-скрипт docker network connect MyOverlayNetwork nginx
Подключение контейнера к сети при его запуске
``Шелл-скрипт
docker run -it -d --network=MyOverlayNetwork nginx
Отключение контейнера от сети
docker network disconnect MyOverlayNetwork nginx
Создание сетей
``Сценарий командной строки docker network create -d overlay MyOverlayNetwork
docker network create -d bridge MyBridgeNetwork
docker network create -d overlay
–subnet=192.168.0.0/16
–subnet=192.170.0.0/16
–gateway=192.168.0.100
–gateway=192.170.0.100
–ip-range=192.168.1.0/24
–aux-address=“my-router=192.168.1.5”
–aux-address=“my-switch=192.168.1.6”
–aux-address=“my-printer=192.170.1.5”
–aux-address=“my-nas=192.170.1.6”
MyOverlayNetwork
Очистка {.cols-2}
-------------
### Clean All
Очищает висящие образы, контейнеры, тома и сети (т.е. не связанные с контейнером)
``hell
docker system prune
Кроме того, удалите все остановленные контейнеры и все неиспользуемые образы (не только висящие)
``hell docker system prune -a
### Контейнеры
Остановите все работающие контейнеры
``hell
docker stop $(docker ps -a -q)
Удалить остановленные контейнеры
docker container prune
Изображения
Удалите все болтающиеся (не помеченные и не связанные с контейнером) изображения: ``hell docker image prune
Удалить все образы, которые не используются существующими контейнерами
```hell
docker image prune -a
Тома
docker volume prune
Удалить все тома, не используемые хотя бы одним контейнером
Разное
Docker Hub
| Синтаксис | Описание | Docker.
|—————————–|————————————-|
| docker search search_word
| Поиск изображений на хабе docker. |
| docker pull user/image
| Загрузка образа с хаба docker. |
| docker login
| Аутентификация на хабе docker |
| docker push user/image
| Загружает изображение на хаб docker. |
Команды реестра
Вход в реестр
Шелл-скрипт $ docker login $ docker login localhost:8080
Выход из реестра
``Шелл-скрипт
$ docker logout
$ docker logout localhost:8080
Поиск изображения
``Шелл-скрипт $ docker search nginx $ docker search nginx –stars=3 –no-trunc busybox
Извлечение изображения
``Шелл-скрипт
$ docker pull nginx
$ docker pull eon01/nginx localhost:5000/myadmin/nginx
Передача изображения
Шелл-скрипт $ docker push eon01/nginx $ docker push eon01/nginx localhost:5000/myadmin/nginx
### Пакетная очистка
| Пример | Описание |
|-------------|---------------------------------------------|
`docker stop -f $(docker ps -a -q)` | Остановка всех контейнеров
`docker rm -f $(docker ps -a -q)` | Удаление всех контейнеров
`docker rmi -f $(docker images -q)` | Удаление всех образов
### Объемы
Проверка томов
Шелевой сценарий
$ docker volume ls
Очистка неиспользуемых томов
$ docker volume prune