Docker: различия между версиями

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
(Основные команды для работы с Docker контейнерами)
 
(не показано 8 промежуточных версий этого же участника)
Строка 7: Строка 7:
 
#Проверка корректности установки<br>Для этого устанавливаем тестовый контейнер<pre>$sudo docker run hello-world</pre>После следующей команды будет скачан образ контейнера, если его нет в локальном репозитории  и запуск контейнера. При этом мы окажемся в его консоли<pre>docker run -it ubuntu bash</pre>После этого можем установить в контейнер, например mc<pre>apt update && apt install mc</pre>Можем запустить mc.<br>Для выхода из консоли вводим exit.
 
#Проверка корректности установки<br>Для этого устанавливаем тестовый контейнер<pre>$sudo docker run hello-world</pre>После следующей команды будет скачан образ контейнера, если его нет в локальном репозитории  и запуск контейнера. При этом мы окажемся в его консоли<pre>docker run -it ubuntu bash</pre>После этого можем установить в контейнер, например mc<pre>apt update && apt install mc</pre>Можем запустить mc.<br>Для выхода из консоли вводим exit.
 
==Установка Docker-compose==
 
==Установка Docker-compose==
 +
Взято [https://docs.docker.com/compose/install/ тут]. Лучше все делать как там написано, тк там самая свежая информация<br>
 +
1. Выполняем команду
 +
<pre>sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
 +
sudo chmod +x /usr/local/bin/docker-compose
 +
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
 +
</pre>
 +
2. Проверка инсталяции
 +
<pre>$ docker-compose --version
 +
docker-compose version 1.25.3, build d4d1b42b</pre>
 +
==Основные команды для работы с Docker контейнерами==
 +
Запуск docker контейнера ubuntu итерактивно (-it) и после запуска Вы попадаете в его консоль (bash).
 +
<pre>$ docker run -h myhost --name name_cont -p 3308:3306 -it ubuntu bash</pre>
 +
-it - итерактивно<br>
 +
-h  -имя носта контейнера после запуска<br>
 +
bash  -после запуска Вы попадаете в его консоль<br>
 +
--name - имя контейнера, по которому к нему можно будет обращаться<br>
 +
-p 3308:3306 - проброс портов из контейнера: 3308 - порт на хостовой машине, 3306 - порт контейнера .
 +
 +
Вход в работающий контейнер
 +
<pre>docker exec -it name bash</pre>
 +
 +
Выход из контейнера.
 +
<pre>root@24e73fa3a6df:/# exit</pre>
 +
Вывод работающих контейнеров
 +
<pre>$ docker ps</pre>
 +
Вывод всех запускавшихся на компьютере контейнеров
 +
<pre>docker ps -a
 +
CONTAINER ID        IMAGE              COMMAND            CREATED            STATUS                      PORTS              NAMES
 +
24e73fa3a6df        ubuntu              "bash"              3 minutes ago      Exited (0) 30 seconds ago                      sad_swartz
 +
4dac50c0d2c1        hello-world        "/hello"            33 minutes ago      Exited (0) 33 minutes ago                      dazzling_payne
 +
</pre>
 +
Запуск не запущенного контейнера по CONTAINER ID или по NAMES
 +
<pre>$ docker start 24e73fa3a6df</pre>или <pre>$ docker start  sad_swartz</pre>
 +
Остановка работающего контейнера. Как и в предыдущем примере по CONTAINER ID или по NAMES
 +
<pre>$ docker stop 24e73fa3a6df</pre>
 +
Получение информации о работающем контейнере по CONTAINER ID или по NAMES
 +
<pre>$ docker inspect name_cont</pre>
 +
Посмотреть список файлов, измененных в работающем контейнере по CONTAINER ID или по NAMES
 +
<pre>docker diff name_cont</pre>
 +
Вывод логов работающего контейнера
 +
<pre>$ docker logs name_cont</pre>
 +
Удаление контейнера из списка
 +
<pre>$ docker rm name_cont</pre>
 +
Вывод идентификаторов всех остановленных контейнеров
 +
<pre>$ docker ps -aq -f status=exited</pre>
 +
Используя предыдущую команду можно удалить все не работающие контейнеры
 +
<pre>docker rm -v $(docker ps -aq -f status=exited)</pre>
 +
Список образов, которые хранятся локально
 +
<pre>$ docker images
 +
REPOSITORY          TAG                IMAGE ID            CREATED            SIZE
 +
bitnami/apache      latest              7ea2ee227a0b        16 hours ago        123MB
 +
mysql              latest              791b6e40940c        7 days ago          465MB
 +
ubuntu              latest              ccc6e87d482b        3 weeks ago        64.2MB
 +
hello-world        latest              fce289e99eb9        13 months ago      1.84kB</pre>
 +
Удалить образ.
 +
<pre>$ docker rmi name_image</pre>

Текущая версия на 17:49, 14 марта 2020

Установка Docker на UBUNTU 20.04

Взято тут

  1. Установка пакета
    $sudo apt install docker.io
  2. Запуск docker и добавление в автозапуск ОС
    $ sudo systemctl enable --now docker
  3. Включение пользователя в группу работы с docker
    $ sudo usermod -aG docker SOMEUSERNAME
  4. Проверка версии
    $ docker --version
  5. Проверка корректности установки
    Для этого устанавливаем тестовый контейнер
    $sudo docker run hello-world
    После следующей команды будет скачан образ контейнера, если его нет в локальном репозитории и запуск контейнера. При этом мы окажемся в его консоли
    docker run -it ubuntu bash
    После этого можем установить в контейнер, например mc
    apt update && apt install mc
    Можем запустить mc.
    Для выхода из консоли вводим exit.

Установка Docker-compose

Взято тут. Лучше все делать как там написано, тк там самая свежая информация
1. Выполняем команду

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

2. Проверка инсталяции

$ docker-compose --version
docker-compose version 1.25.3, build d4d1b42b

Основные команды для работы с Docker контейнерами

Запуск docker контейнера ubuntu итерактивно (-it) и после запуска Вы попадаете в его консоль (bash).

$ docker run -h myhost --name name_cont -p 3308:3306 -it ubuntu bash

-it - итерактивно
-h -имя носта контейнера после запуска
bash -после запуска Вы попадаете в его консоль
--name - имя контейнера, по которому к нему можно будет обращаться
-p 3308:3306 - проброс портов из контейнера: 3308 - порт на хостовой машине, 3306 - порт контейнера .

Вход в работающий контейнер

docker exec -it name bash

Выход из контейнера.

root@24e73fa3a6df:/# exit

Вывод работающих контейнеров

$ docker ps

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

docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
24e73fa3a6df        ubuntu              "bash"              3 minutes ago       Exited (0) 30 seconds ago                       sad_swartz
4dac50c0d2c1        hello-world         "/hello"            33 minutes ago      Exited (0) 33 minutes ago                       dazzling_payne

Запуск не запущенного контейнера по CONTAINER ID или по NAMES

$ docker start 24e73fa3a6df

или

$ docker start  sad_swartz

Остановка работающего контейнера. Как и в предыдущем примере по CONTAINER ID или по NAMES

$ docker stop 24e73fa3a6df

Получение информации о работающем контейнере по CONTAINER ID или по NAMES

$ docker inspect name_cont

Посмотреть список файлов, измененных в работающем контейнере по CONTAINER ID или по NAMES

docker diff name_cont

Вывод логов работающего контейнера

$ docker logs name_cont

Удаление контейнера из списка

$ docker rm name_cont

Вывод идентификаторов всех остановленных контейнеров

$ docker ps -aq -f status=exited

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

docker rm -v $(docker ps -aq -f status=exited)

Список образов, которые хранятся локально

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
bitnami/apache      latest              7ea2ee227a0b        16 hours ago        123MB
mysql               latest              791b6e40940c        7 days ago          465MB
ubuntu              latest              ccc6e87d482b        3 weeks ago         64.2MB
hello-world         latest              fce289e99eb9        13 months ago       1.84kB

Удалить образ.

$ docker rmi name_image