Начало работы с Docker

by itisgood

В предыдущем уроке мы объяснили, как установить Docker в CentOS. Сегодня мы увидим базовое использование Docker. Это руководство будет охватывать только основы, такие как создание нового контейнера, запуск контейнера, удаление контейнера и создание образа Docker из контейнера.

Основы Docker

Работа с Docker действительно интересна!

Вы узнаете, как сделать пару вещей с Докером.

Как я уже объяснял в предыдущем уроке, Docker Image – это файл, который решает, как должен себя вести контейнер, а Docker Container – это запущенный или остановленный этап изображения Docker.

Не путайте с изображениями Docker и Docker Containers.

1. Загрузить образ Docker

Чтобы загрузить обрах Docker для ОС Ubuntu, выполните следующую команду из терминала:

sudo docker pull ubuntu

Вышеупомянутая команда загрузит последний образ Ubuntu из Docker hub

Docker hub  это облако, где все пользователи Docker создают, тестируют и сохраняют свои изображения Docker.

Пример вывода

Using default tag: latest
latest: Pulling from library/ubuntu

759d6771041e: Pull complete 
8836b825667b: Pull complete 
c2f5e51744e6: Pull complete 
a3ed95caeb02: Pull complete 
Digest: sha256:b4dbab2d8029edddfe494f42183de20b7e2e871a424ff16ffe7b15a31f102536
Status: Image is up to date for ubuntu:latest

ocker позволяет загружать любые образы и запускать контейнер независимо от ОС.

Могу ли я создать только контейнеры Ubuntu? Нет, вы можете создать любой контейнер по вашему выбору.

Например, чтобы создать гостевой компьютер CentOS (конечно, контейнер), выполните следующую команду:

sudo docker pull centos

Вы можете найти загруженные изображения Docker в каталоге / var / lib / docker /.

Чтобы просмотреть список загруженных изображений Docker, запустите:

sudo docker images

Пример вывода

REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest b72889fa879c 35 hours ago 187.9 MB
hello-world latest 690ed74de00f 6 months ago 960 B

Как вы видите выше, я загрузил два изображения Docker.

Теперь давайте посмотрим, как запустить или запустить контейнеры.

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

Поскольку вы в приведенных выше результатах «последним» является TAG для обоих контейнеров, а b72889fa879c является идентификатором IMAGE изображения Ubuntu

Docker, а 690ed74de00f является идентификатором изображения изображения hello_world Docker.

2. Запуск контейнеров Docker

После загрузки изображений Docker по вашему выбору выполните следующую команду, чтобы запустить контейнер Docker, используя его TAG.

sudo docker run -t -i ubuntu:latest /bin/bash

Где:

  • -t: Назначает новый терминал внутри контейнера Ubuntu.
  • -i: Позволяет нам сделать интерактивное соединение, захватив стандарт в (STDIN) контейнера.
  • ubuntu:latest: контейнер Ubuntu с TAG «latest».
  • / bin / bash: оболочка BASH для нового контейнера.

Или вы можете запустить контейнер с помощью IMAGE ID, как показано ниже:

sudo docker run -t -i b72889fa879c /bin/bash

Где:

  • b72889fa879c – Image id

После запуска контейнера вы будете автоматически введены в оболочку Контейнера (Командная строка):

Чтобы вернуться обратно к терминалу хост-системы (я имею в виду Lubuntu 14.04 LTS) без остановки контейнера (guest os), нажмите CTRL + P, а затем CTRL + Q.

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

Обратите внимание, что контейнер все еще работает, мы его не завершаем.

Чтобы просмотреть список контейнеров, выполните следующую команду:

sudo docker ps

Пример вывода

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
541256222acc ubuntu:latest "/bin/bash" 5 minutes ago Up 5 minutes sad_galileo

Чтобы перечислить все доступные (запущенные или остановленные) контейнеры:

sudo docker ps -a

Чтобы остановить (выключить контейнер) из оболочки хоста, выполните следующую команду:

sudo docker stop <container-id>

Пример:

sudo docker stop 541256222acc

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

sudo docker attach 541256222acc

Как вы уже знаете, 541256222acc – это идентификатор контейнера.

Чтобы отключить контейнер, запустите:

exit

3. Создайте свои пользовательские образа Docker

Docker предназначен не только для загрузки и использования существующих контейнеров.

Вы можете создать свой собственный образ, если хотите.

Для этого запустите любой загруженный контейнер:

sudo docker run -t -i ubuntu:latest /bin/bash

Теперь вы будете в оболочке контейнера.

Затем установите любое программное обеспечение или сделайте все, что вы хотите сделать в контейнере.

Например, давайте установим MySQL в контейнер

После того как вы сделали все настройки, установили все необходимые программные средства, выполните следующую команду, чтобы создать свой собственный образ:

apt-get install mysql-server mysql-client

Обратите внимание, что мы устанавливаем сервер MySQL и клиентские пакеты внутри контейнера, а не в хост-системе.

Введите новый пароль для пользователя root «root»:

Аналогичным образом, установите и протестируйте любое программное обеспечение по вашему выбору в контейнере.

После того, как вы все установили, вернитесь обратно в оболочку хост-системы.

Не останавливайте и не выключайте контейнер.

Чтобы переключиться на оболочку хост-системы без остановки контейнера, нажмите CTRL + P, а затем CTRL + Q.

В оболочке вашего компьютера запустите следующую команду, чтобы создать образ Docker запущенного контейнера.

sudo docker commit 12e892156219 ostechnix/ubuntu_mysql

Пример вывода

sha256:40d5bc9614a7b7c5cd9506421c91a11d23f0565b6ed9fb19dbcc0b1bafbdea3b

Где

  • 12e892156219 – ID контейнера Ubuntu. Как вы уже знаете, мы можем найти идентификатор контейнера с командой «sudo docker ps».
  • ostechnix – имя пользователя, создавшего контейнер.
  • ubuntu_mysql – имя изображения докера, созданного пользователем ostechnix.

Давайте проверим, создан ли новый образ Docker или нет с командой:

sudo docker images

Пример вывода

REPOSITORY TAG IMAGE ID CREATED SIZE
ostechnix/ubuntu_mysql latest 40d5bc9614a7 3 minutes ago 317.7 MB
ubuntu latest b72889fa879c 4 days ago 187.9 MB
hello-world latest 690ed74de00f 6 months ago 960 B

Как вы видите в приведенном выше выпуске, новое изображение Docker было создано в нашей локальной системе хостов из запущенного контейнера.

Теперь вы можете создать новый Контейнер из вновь созданного изображения Docker, как обычно, для команды suing:

sudo docker run -t -i ostechnix/ubuntu_mysql /bin/bash

4. Удаление образов Docker и контейнеров

После того, как вы сделали все с образами Docker, вы можете удалить их, если вы их больше не хотите.

Для этого сначала нужно остановить (отключить) запущенные контейнеры.

Остановите запущенный контейнер, используя его ID:

sudo docker stop 12e892156219

Then, delete all downloaded Docker images using command.

To find the list of the Downloaded Docker images:

sudo docker ps

Пример вывода

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
12e892156219 ubuntu:latest "/bin/bash" 28 minutes ago Up 28 minutes goofy_easley

Остановите запущенный контейнер, используя его ID:

sudo docker stop 12e892156219

Исправление проблем

Иногда Docker не позволяет вам удалять изображения Docker.

Например, когда я пытаюсь удалить изображение Docker с идентификатором b72889fa879c, я получил следующую ошибку:

Error response from daemon: conflict: unable to delete b72889fa879c (must be forced) - image is being used by stopped container dde4dd285377

Это связано с тем, что образ Docker, который вы хотите удалить, в настоящее время используется другим контейнером.

Итак, давайте проверим запущенный контейнер с помощью команды:

sudo docker ps

Нет запущенных контейнеров!

Давайте снова проверим все контейнеры (Запуск и останов) с помощью команды:

sudo docker ps -a

Пример вывода

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
12e892156219 ubuntu:latest "/bin/bash" About an hour ago Exited (137) 40 minutes ago goofy_easley
3a335b532ba2 b72889fa879c "/bin/bash" About an hour ago Exited (0) About an hour ago cranky_noether
dde4dd285377 ubuntu:latest "/bin/bash" 2 days ago Exited (130) 2 days ago desperate_minsky
d08bdc436693 b72889fa879c "/bin/bash" 3 days ago Exited (0) 3 days ago elated_gates
541256222acc ubuntu:latest "/bin/bash" 3 days ago Exited (0) 3 days ago sad_galileo
3792618c9f92 b72889fa879c "/bin/bash" 3 days ago Exited (0) 3 days ago elegant_panini
00f90d9b375f ubuntu:latest "/bin/bash" 3 days ago Exited (0) 3 days ago modest_goodall
98e6a091a773 hello-world "/hello" 3 days ago Exited (0) 3 days ago thirsty_mcclintock

Как вы видите, все еще некоторые остановленные контейнеры используют один из образов Docker. Итак, удалим все контейнеры.

sudo docker rm 12e892156219

 

You may also like

Leave a Comment