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 | открытый порт |