Dockerfile для создания образа
оригинальныйПродолжайте, возьмите книгу снова. Сегодня мы поговорим об использовании Dockerfile для создания контейнеров изображений.
содержание
- Время для Docker: 1 учебник по Docker
- Время до Docker: 2 Установите и отмените sudo docker
- Время для Docker: 3 небольших примера Docker
- Время до Docker: 3.1 Памятка по командам Docker19
- Пришло время Docker: 4 Dockerfile для создания образа
- Пришло время Docker: 5 томов, независимых от постоянного хранилища вне контейнера
Экземпляр Dockerfile
FROM alpine:latest
MAINTAINER sbf
CMD echo 'hello docker'
иллюстрировать
FROM baseimage
MAINTAINER 共享是告诉其他人,是谁写的
CMD 运行命令
Фактическая операция
touch Dockerfile
vim Dockerfile
docker build -t hello_docker . // -t 构建image名 . 当前目录下所有内容都提交给docker产生image
docker images hello_docker // 查看image 是否生成
docker run hello_docker // 运行image, 输出内容 hello docker
более сложный пример
FROM ubuntu
MAINTAINER xbf
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nginx
COPY index.html /var/www/html
ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"]
EXPOSE 80
docker build -t test_docker .
docker run -d -p 8080:80 test_docker
наслоение изображения
Каждая строка Dockerfile приводит к иерархическому и доступному только для чтения, например
будет сгенерировано при запуске образаcontainer layer
Новый уровень чтения и записи для обеспечения возможности изменения контейнера. Преимущество многоуровневого хранения заключается в том, что объединение одних и тех же уровней может снизить затраты на хранение.
Краткое описание синтаксиса Dockerfile
грамматика | иллюстрировать |
---|---|
FROM | базовое изображение |
RUN | Выполнять команды внутри контейнера |
CMD | Вход в программу, как и основной метод |
ENTRYPOINT | Если указано, CMD станет его аргументами |
ADD | Может добавлять удаленные файлы, такие как файлы ftp, более мощные, чем копирование |
COPY | копировать файл |
WORKDIR | Рабочий список |
MAINTAINER | автор |
ENV | Установите переменную среды внутри контейнера |
USER | Пользователь, выполняющий команду, обычно не root |
VOLUME | висит на рулоне |
EXPOSE | открытый порт |