Just tiny list of docker's commands/Шпаргалка по Docker 🐳 🌚
- Images/ Работа с образами
- Containers/ Работа с контейнерами
- Dockerfile/ Создание собственных образов
- .dockerignore/ Иселючение файлов и каталогов из образа
- Other/ Неотсортированные полезные команды
- Заключение
- Скачать образ(Image) можно командой pull:
$ docker pull ubuntu
- Посмотреть образы, скаченные на локальную машину, можно командой Images или image ls:
$ docker images
$ docker image ls
- Удалить ненужные образы можно с помощью команды rmi:
$ docker rmi id_образа
- Удалить все неиспользуемые образы можно командой image prun:
$ docker image prune
- Запустить образ(Image) можно командой run:
$ docker run имя_образа или id_образа
Ключ -it ( --interactive --tty) - оставить возможность взаимодействия с контейнером через терминал
$ docker run -it имя_образа или id_образа ...
Ключ -p указание порта -p порт_хоста:порт_контейнера
$ docker run -p 3000:3000 имя_образа или id_образа ...
Ключ -d (--detach) - detached mode запуск в фоновом режиме
$ docker run -d имя_образа или id_образа ...
Ключ --name задаёт имя контейнеру
$ docker run --name=имя_контейнера имя_образа или id_образа ...
Ключ --rm удалит контейнер после его остановки
$ docker run --rm имя_образа или id_образа ...
Ключ -e задаёт значение переменным окружения
$ docker run -e PORT=80 имя_образа или id_образа ...
- Посмотреть запущенные контейнеры можно командой ps:
$ docker ps -a
(ключ -a показывает вообще все контейнеры, даже приостановленные)
-
Выйти из контейнера без его остановки (без отсоединения контейнера) можно при последовательном нажатии
ctrl + p
затемctrl + q
-
Удалить приостановленные контейнеры можно командой rm:
$ docker rm имя_контейнера или id_контейнера (можно несколько id)
- Удалить все приостановленные контейнеры можно командой container prune:
$ docker container prune (Необходимо нажать y(yes) для подтверждения)
- Запуск приостановленного контейнера можно осуществить по команде Start:
$ docker start имя_контейнера или id_контейнера
- Чтобы подключиться к контейнеру во время работы в нём приложения используется команда attach:
$ docker attach имя_контейнера или id_контейнера
- Логи и вывод в консоль сообщений в контейнере осуществляется командой logs
$ docker logs имя_контейнера или id_контейнера
- Чтобы выполнить команду в запущенном контейнере используется команда:
$ docker exec -it postgres psql -U postgres
Ключ -it ( --interactive --tty) - оставить возможность взаимодействия с контейнером через терминал
Ключ -d (--detach) - detached mode запуск в фоновом режиме
Ключ -e задаёт значение переменным окружения
- Чтобы скопировать файлы из контейнера на хост используется команда cp
$ docker cp id_контейнера:/file/path/within/container /host/path/target
Инструкции для сборки(создания) собственного образа(Image) docker необходимо записывать в специальном файле Dockerfile (с большой буквы без раcширения файла).
Создаётся частный случай для конкретного приложения.
Образ создаётся на основе существующего образа.
FROM название_образа(Image) на основе которого будет приложение.
(Если этот оброз есть локально, то используется локальный образ, если нет, то качается нужный образ.)
COPY копирует файлы и папки пользователя в образ.
COPY .(точка - текущий каталог) - копирует корень проекта (где лежит докер-файл) Дальше необходимо указать в какое место необходимо скопировать файлы
COPY . . (из корня проекта в корень образа)
WORKDIR - рабочая дириктория для проекта в образе
WORKDIR /app (тогда COPY . . будет копировать файлы в WORKDIR, т.е. в /app)
RUN запускает что-то при сборке. Например, если необходимо установить дополнительные пакеты, библиотеки и т.д.
CMD запускается(выполняется) при запуске контейнера. Представляет массив слов команды, например:
CMD ["go", "run", "main.go"]
EXPOSE указывает какой порт используется для запуска приложения
FROM node
WORKDIR /app
COPY . .
RUN npm install
EXPOSE 3000
CMD ["node", "app.js"]
Сборка собственного образа происходит по команде build:
$ docker build . (Если файл Dockerfile расположен в текущей директории)
Ключ -t позволяет задать имя создаваемому образу а также тэг(по-умолчанию(если не указывать) тэг latest) через :
!!!Важно!!! Имя и тэг необходимо указать в нижнем регистре!!!
$ docker build -t newname:newtag .
Если необходимо исключить какие-то файлы из копируемых в образ
можно использовать файл .dockerignore
node_modules
.git
Dockerfile
.idea
- Чтобы узнать ip виртуальной машины можно воспользоваться командой ip утилиты docker-machine
$ docker-machine ip
- Чтобы остановить виртуальную машину можно воспользоваться командой stop утилиты docker-mashine. Тогда при выключении ПК, на котором был запущен Докер, не будет висеть процесс виртуальной машины:thumbsup:
$ docker-machine stop
Это только начало моей работы с Docker. По мере получения мною новых знаний буду добавлять
команды в данную шпаргалку:alien: