Deux façons de créer des images avec Docker

Deux façons de créer des images avec Docker

Docker peut créer une image de deux manières: docker s'engage à créer une image et à construire une image basée sur dockerfile. Dans dddd , nous parlons de la façon d'utiliser dockerfile pour créer une image. Seules les commandes FROM et RUN sont utilisées, ce qui est relativement simple.

Cet article explique comment utiliser la validation Docker pour créer des images et d'autres commandes et l'utilisation de Dockerfile.

Tout d'abord, les dockers s'engagent à créer une image

Créez une image via la validation Docker, exécutez une image de base, puis installez le logiciel et modifiez le fichier de configuration sur l'image de base. Soumettez ensuite les modifications à la nouvelle image.

1 、 docker run

1) Les images Docker vérifient d'abord s'il existe une image locale existante, sélectionnez l'image de base requise, si elle n'est pas nécessaire, utilisez Docker Pull pour tirer l'image requise

2) Ensuite, utilisez Docker Run pour exécuter l'image en tant que conteneur

2. docker commit -a author information -m description information nom du conteneur nom miroir (prenez-en un vous-même)

-a Spécifiez les informations sur l'auteur -m Soumettez les informations de description -p suspend le conteneur par défaut lors de la validation

L'implémentation spécifique est la suivante:

 

 

Dans la dernière case rouge, la commande docker commit enregistre enfin le nom de l'image modifiée, choisissez-en une vous-même

3. docker diff Voir les changements dans la couche de stockage d'images

4 history historique des dockers

-q affiche uniquement l'ID du miroir

 

Description:

1) En plus de ce que vous voulez vraiment modifier avec l'image de validation, d'autres fichiers seront modifiés ou ajoutés en raison de l'exécution de la commande. Si vous installez des progiciels, compilez et construisez, beaucoup de contenu étranger sera ajouté, ce qui Causant que l'image miroir soit extrêmement gonflée ,

Docker commit signifie que les opérations de mise en miroir sont toutes des opérations de boîte noire , il est difficile pour les autres de savoir ce qui se passe à l'intérieur et la maintenance est très difficile. L'officiel ne recommande pas de créer par commit.

2) Cette méthode est la plus gratuite et la plus simple si vous ne craignez pas que le miroir devienne de plus en plus gros.

Deuxièmement, la commande Dockerfile

Un Dockerfile est un fichier texte qui contient une série d'instructions. Chaque instruction crée une couche. Par conséquent, le contenu de chaque instruction décrit comment la couche doit être construite.

Remarque: lors de la création d'une image, veillez à n'ajouter que ce dont vous avez vraiment besoin pour ajouter à chaque calque

1. FROM spécifie l'image de base

格式 : DE <image> 或者 DE <image>: <tag>

Par exemple: FROM centos: 7

2. Renseignements sur le responsable désigné du MAINTENANT 

 

Format: MAINTAINER <nom>

Par exemple: MAINTAINER hxq [email protected]

3. Exécuter la commande

1) Mode shell:

RUN <command> est comme la commande entrée directement sur la ligne de commande

RUN <command> utilise `/ bin / sh -c` par défaut pour exécuter les commandes

例 : RUN yum install -y httpd

例 : RUN echo '<h1> Bonjour Docker! </h1>'> /usr/share/nginx/html/index.html

2) mode d'exécution

RUN ["fichier exécutable", "paramètre 1", "paramètre 2"], cela ressemble plus au format dans un appel de fonction

Remarque: La commande RUN est utilisée pour exécuter la ligne de commande. Notez que chaque utilisation d'un RUN (commande dockerfile) consiste à ajouter un calque supplémentaire à l'image (la limite maximale est de 127 calques).

          Exécutez plusieurs instructions pour vous connecter à && (apt-get plus -y, ce qui signifie que l'installation du système vous invite à sélectionner oui par défaut, sinon la mise en miroir échoue; s'il y a un saut de ligne entre la commande &&, n'oubliez pas d'apporter \ après la ligne )

 

4. COPIER des fichiers de copie

格式:COPY src desc
复制本地主机src目录或文件到容器的desc目录,desc不存在时会自动创建。

5、ADD 高级复制

 

格式:ADD src dest
该命令将复制指定本地目录中的文件到容器中的dest中,src可以是是一个绝对路径,也可以是一个URL或一个tar文件,tar文件会自动解压为目录。

 

6、CMD 容器启动命令

 

是可以被 docker run 指令覆盖的,而ENTRYPOINT的参数可以被--entrypoint覆盖;会比CMD或者docker run指定的命令要靠前执行。

 

7、ENTRYPOINT 入口点
ENTRYPOINT ["executable","param1","param2"]
ENTRYPOINT command param1,param2 会在shell中执行。
用于配置容器启动后执行的命令,这些命令不能被docker run提供的参数覆盖。和CMD一样,每个Dockerfile中只能有一个ENTRYPOINT,当有多个时最后一个生效。

 

8、ENV 用设置环境变量

 

这些环境变量,后续可以被RUN指令使用,容器运行起来之后,也可以在容器中获取这些环境变量。
格式为:EVN key value
ENV word hello
RUN echo $word

 

9、ARG 构建参数

 

10、VOLUMN 定义匿名卷

 

格式: VOLUME ["/data"]
作用是创建在本地主机或其他容器可以挂载的数据卷,用来存放数据。

 

11、EXPOSE 暴露端口

在启动容器的使用使用-P,Docker会自动分配一个端口和转发指定的端口,使用-p可以具体指定使用哪个本地的端口来映射对外开放的端口。
格式: EXPOSE port [port2,port3,...]
比如:EXPOSE 80 这条指令告诉Docker服务器暴露80端口,供容器外部连接使用。

 

12、WORKDIR  指定工作目录

 

为后续的RUN CMD ENTRYPOINT指定配置工作目录,可以使用多个WORKDIR指令,若后续指令用得是相对路径,则会基于之前的命令指定路径。
格式: WORKDIR /path
比如: WORKDIR /path/to/workdir

 

13、USER 指定容器运行时的用户名或UID

 

后续的RUN也会使用指定的用户。要临时使用管理员权限可以使用sudo。在USER命令之前可以使用RUN命令创建需要的用户。
格式为:USER username
比如:RUN groupadd -r docker && useradd -r -g docker docker

 

14、HEALTHCHECK 健康检查

15、ONBUILD 镜像触发器

 

格式:ONBUILD [INSTRUCTION]
该配置指定当所创建的镜像作为其他新建镜像的基础镜像时所执行的指令。
例如下面的Dockerfile创建了镜像A:
ONBUILD ADD . /app
ONBUILD RUN python app.py

 

则基于镜像A创建新的镜像时,新的Dockerfile中使用from A 指定基镜像时,会自动执行ONBBUILD指令内容,等价于在新的要构建镜像的Dockerfile中增加了两条指令:
FROM A
ADD ./app
RUN python app.py
16、docker build
创建好Dockerfile之后,通过docker build命令来创建镜像,该命令首先会上传Dockerfile文件给Docker服务器端,服务器端将逐行执行Dockerfile中定义的指令。
通常建议放置Dockerfile的目录为空目录。另外可以在目录下创建.dockerignore文件,让Docker忽略路径下的文件和目录,这一点与Git中的配置很相似。

 

通过 -t 指定镜像的标签信息,例如:docker build -t regenzm/first_image . ## "."指定的是Dockerfile所在的路径

 

Je suppose que tu aimes

Origine www.cnblogs.com/hld123/p/12751539.html
conseillé
Classement