Предыдущий обзор:
Сегодня поговорим о зеркалировании. Зеркальное отображение — это особенно важная концепция в Docker, и оно является основой для работы контейнера. Без зеркалирования все последующее не будет держаться.
Типичный метод представления изображения делится на три части, с/
Разделение:
remote image hub/namespace/name:tag
- удаленный концентратор изображений: адрес веб-сервера, на котором хранится изображение;
- пространство имен: пространство имен, представляющее все изображения пользователя или организации;
- имя: имя изображения;
- тег: тег изображения.
На самом деле зеркало, которое мы часто видим, выглядит вот такname:tag
, потому что в образе, извлеченном из официального репозитория Docker, могут отсутствовать первые две части.
получить зеркало
использоватьdocker pull name[:tag]
команда для загрузки изображения, если тег не указан явно, по умолчанию будет выбран последний тег.
$ docker pull busybox
Using default tag: latest
latest: Pulling from library/busybox
76df9210b28c: Pull complete
Digest: sha256:95cf004f559831017cdf4628aaf1bb30133677be8702a8c5f2994629f637a209
Status: Downloaded newer image for busybox:latest
docker.io/library/busybox:latest
Посмотреть информацию о зеркале
использоватьdocker images
Команда для отображения исходных изображений.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 1c35c4412082 6 days ago 1.22MB
Идентификатор изображения очень важен, он однозначно идентифицирует изображение.
использоватьdocker tag
Команда для добавления новой метки к локальному образу.
$ docker tag busybox:latest mybusybox:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 1c35c4412082 6 days ago 1.22MB
mybusybox latest 1c35c4412082 6 days ago 1.22MB
Видно, что идентификаторы двух локальных зеркал теперь одинаковы, что означает, что они указывают на одно и то же зеркало, но метки разные.
использоватьdocker inspect
команда, чтобы получить детали изображения.
использоватьdocker history
Команда выводит информацию о создании каждого слоя образа.
поисковое зеркало
использоватьdocker search
команда для поиска зеркал.
$ docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 6039 [OK]
ansible/centos7-ansible Ansible on Centos7 130 [OK]
consol/centos-xfce-vnc Centos container with "headless" VNC session… 116 [OK]
jdeathe/centos-ssh OpenSSH / Supervisor / EPEL/IUS/SCL Repos - … 114 [OK]
centos/mysql-57-centos7 MySQL 5.7 SQL database server 76
imagine10255/centos6-lnmp-php56 centos6-lnmp-php56 58 [OK]
Удалить и очистить изображения
использоватьdocker rmi
Есть два способа удалить изображение с помощью команды: один — удалить по имени и метке изображения, другой — удалить по идентификатору изображения. При обычном использовании большинство из них удаляются через ID зеркала.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 1c35c4412082 8 days ago 1.22MB
mybusybox latest 1c35c4412082 8 days ago 1.22MB
$ docker rmi mybusybox:latest
# 或者
$ docker rmi 1c35c4412082
Если на образ ссылается контейнер, его нельзя удалить.Сначала необходимо удалить контейнер, который зависит от образа, а затем уже сам образ. Или, если это более жестоко, используйте его напрямую-f
Параметры удалить, тоже можно добиться эффекта, но все же не рекомендуется.
использоватьdocker image prune
Команда для очистки некоторых временных образов, оставшихся в системе, а также некоторых неиспользуемых образов.
Создать образ
Существует три способа создания образа:
- Создан из существующего контейнера
- Импорт на основе локального шаблона
- Создан на основе Dockerfile
1. Создан на основе существующего контейнера
# 运行一个容器
$ docker run -it centos /bin/bash
# 在容器中创建一个文件,然后退出
[root@f0767e2e8964 /]# touch text.txt
[root@f0767e2e8964 /]# exit
exit
# 查看容器
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f0767e2e8964 centos "/bin/bash" 17 seconds ago Exited (0) 4 seconds ago stupefied_ptolemy
# 基于容器创建镜像
$ docker commit -a 'add file' f0767e2e8964 centos:1.0
sha256:a651491d9bfe6d00eef7a23bd290be839d59efafa31183ef2038399271dee459
# 查看除了原有镜像,还有新生成的镜像,标签不同
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 1.0 a651491d9bfe 4 seconds ago 237MB
centos latest 470671670cac 4 months ago 237MB
2. Импорт на основе локального шаблона
использоватьdocker import
команда для импорта шаблона в виде изображения.
3. Создать на основе Dockerfile
Это самый используемый метод в практической работе, давайте сначала его продадим, а потом напишем отдельную статью, чтобы подробно его представить.
Сохранение и загрузка изображений
использоватьdocker save
Команда для сохранения изображения в файл.
$ docker save -o busybox.tar busybox
После выполнения в текущем каталоге будет файл busybox.tar, после чего вы сможете поделиться этим файлом с другими.
После получения файла используйтеdocker load
команда для загрузки изображения.
$ docker load < busybox.tar
загрузить изображение
использоватьdocker push
Команда загружает образ на зеркальный склад, так что если вы хотите использовать этот образ на других серверах, вы можете напрямуюdocker pull
Можно сделать сразу, очень удобно.
По умолчанию он будет загружен в официальный репозиторий Docker Hub, также мы можем создать собственный частный репозиторий. Вообще говоря, у компании будет свой зеркальный склад, и мы сможем использовать его в соответствии со своими потребностями.
Эта статья здесь, в следующей статье будет рассказ о контейнерах.
Справочная литература:
- «Введение и практика технологии Docker»
- «Докер продвинутый и настоящий бой»
Прошлые основные моменты:
Введение в Docker и его установку | Серия Docker
Технический блог:
GitHub.com/Делайте это с душой/Особые…
В то же время, вы также можете обратить внимание на мой публичный аккаунт WeChat.AlwaysBeta, вас ждет еще больше захватывающего контента.