Введение в докер
Docker упаковывает приложение и зависимости программы в один файл.
Экземпляр контейнера, сгенерированный файлом образа, сам является файлом, называемым файлом-контейнером.
После создания контейнера одновременно существуют два файла: файл изображения и файл контейнера.
Закрытие контейнера не удаляет файлы контейнера, он просто останавливает контейнер, вы можете использоватьdocker rm
удалить.
команда работы с докером
Список всех файлов изображений:docker images
Скачать зеркало:docker image pull [image name]
Посмотреть информацию о зеркале:docker inspect pengj/nodeappk8s:v1.0.0
, чтобы просмотреть часть информации об изображении:docker inspect -f {{".Size"}} pengj/nodeappk8s:v1.0.0
Просмотрите конкретное содержимое зеркала:docker history pengj/nodeappk8s:v1.0.0
Поисковые зеркала:docker search mysql
, а также параметры фильтраdocker search --filter=stars=100 mysql
Удалить зеркало:docker rmi [image]
, плюс-f
Параметры могут быть удалены принудительно, даже если используется контейнер, как правилоНе рекомендуется
Очистите изображение:docker image prune
Создайте образ:docker image build -t [username]/[repository]:[tag]
Зеркало выпуска:docker image push [username]/[repository]:[tag]
чтобы пометить изображения, используйтеtag
Команда добавляет метку изображения, указывающую на тот же файл изображения:docker tag ubuntu:lastest myubuntu:lastest
Запустите и войдите в контейнер: см. 👇【Использование docker run и docker exec】
Посмотреть все контейнеры в докере:docker ps -a
Убить контейнер: см. 👇【Обзор методов удаления контейнера】
Приостановить контейнер:docker container stop [containID]
Просмотр журнала контейнера: см. 👇[Просмотр журнала использования журналов докеров]
Просмотр журналов с помощью журналов Docker
docker logs -f -t --since="2017-05-31" --tail=10 edu_web_1
--since
: этот параметр указывает дату начала вывода журнала, то есть выводятся только журналы после указанной даты.-f
: просмотр журналов в реальном времени.-t
: просмотр даты создания журнала.-tail=10
: просмотр последних 10 журналов.edu_web_1
: имя контейнера (имя контейнера)
использование docker run и docker exec
Для запуска образа используйтеdocker run
docker run -it -p 8000:8000 -v /src/webapp(本地绝对):/opt/webapp(镜像绝对路径) ubuntu
-i
Откройте стандартный ввод, чтобы принять пользовательский ввод
-t
Пусть docker выделит псевдотерминал (псевдотерминал) и привяжет его к стандартному вводу контейнера
-u
пользователь, выполнивший команду
docker run -p 容器端口:宿主端口
-v 宿主目录:容器目录
-d 后台运行
-e 设置环境变量
-name 容器名称
--rm 容器终止之后,自动删除文件
Войдите в контейнер и просмотрите статус, гдеi
,t
описание параметра иdocker run
последовательный
docker exec -it [container_name/container_id] /bin/bash
Сводка методов удаления контейнеров
- метод первый:
#显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID,
sudo docker ps -a|grep Exited|awk '{print $1}'
#查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器
sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`
- Способ второй:
#删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)
sudo docker rm $(docker ps -a -q)
- Способ третий:
#根据容器的状态,删除Exited状态的容器
sudo docker rm $(sudo docker ps -qf status=exited)
- Способ четвертый:
# 删除处于stop的容器或者状态status=Exited的容器
sudo docker container prune
Контейнерный файл, завершающий операцию, по-прежнему будет занимать место на жестком диске и может использоватьсяdocker rm [containerID]
команда удалить.
Как удалить изображение none в докере
Чтобы удалить изображение None, вы должны сначала удалить контейнер на изображении. Чтобы удалить контейнер на изображении, контейнер должен сначала остановить.
# 停止容器
docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')
# 删除容器
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')
# 删除镜像
docker rmi $(docker images | grep "none" | awk '{print $3}')
Два способа создать образ
Сначала создайте на основе существующего образа
В основном на основе команды:
docker container commit
-a, --author="": 作者信息;
-c, --change=[]: 可以在提交的时候执行 Dockerfile 指令,如 CMD、ENTRYPOINT、ENV、EXPOSE、LABEL、ONBUILD、USER、VOLUME、WORIR 等;
-m, --message="": 提交信息;
-p, --pause=true: 提交时,暂停容器运行。
Пример процесса импорта, нужно запомнить номер текущего контейнера, допустимaxa0c8cfec3a
:
docker run -it xx:yy /bin/bash
touch news.txt
exit
Выполните команду фиксации:docker container commit -m "Added nes.txt file" -a "hapiman" axa0c8cfec3a news:0.1
Ознакомьтесь с текущим списком зеркал:docker images
Во-вторых, на основе Dockerfile для создания
Самый распространенный способ, пропустить
операции импорта и экспорта докеров
- Способ 1. Использование
docker save
а такжеdocker load
Ознакомьтесь с текущим списком зеркал:docker images
экспортtar
документ:docker save f59c7e5b1817 >zwx_ub.tar
илиdocker save -o zwx_ub.tar f59c7e5b1817
Загрузить изображение:docker load < zwx_ub.tar
илиdocker load -i zwx_ub.tar
Ознакомьтесь с текущим списком зеркал:docker images
- Способ второй, используйте
docker export
а такжеdocker import
импорт:cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:zwx
Экспорт:docker export 16f568766019 > ubuntu.tar
, пронумеруйте зеркала как16f568766019
экспорт изображений
- Разница между двумя
docker save images_name
: экспортируйте изображение в виде файла, а затем используйте команду docker load для импорта файла в виде изображения, которое сохранит изображение.Вся история.比docker export命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。docker export container_id
: Экспортируйте контейнер в качестве файла, используйте команду Import Docker, чтобы импортировать контейнер на новое изображение, но по сравнению с командой Сохранения Docker, файл контейнера будетПотерять все метаданные и историю, который сохраняет только текущее состояние контейнера, что эквивалентно моментальному снимку виртуальной машины.
Добро пожаловать на официальный аккаунт: Programmer's Financial Circle
обсуждение技术,金融,赚钱
небольшой круг, чтобы предоставить вам наиболее有味道
Контент обновляется ежедневно!